Skip to content

Instantly share code, notes, and snippets.

@Yur-ok
Created December 19, 2015 15:24
Show Gist options
  • Save Yur-ok/ff00c75c31d51bbfdae9 to your computer and use it in GitHub Desktop.
Save Yur-ok/ff00c75c31d51bbfdae9 to your computer and use it in GitHub Desktop.
package Lesson3.KeyPoint2;
import java.util.Arrays;
/**
* Created by Юрий on 18.12.2015.
*/
public class VoidSwapSort {
public static void main(String[] args) {
int[] arr = {7, 2, 5, 4, 3, 6, 1};
int[] arr2 = {7, 12, 5, 4, 443, 66, 1};
int[] arr1 = new int[0];
System.out.println(Arrays.toString(arr));
swapSort(arr1);
System.out.println(Arrays.toString(arr2));
}
static void swapSort(int[] data) {
if (data == null || data.length == 0) {
System.out.println(-1);
return;
}
int temp;
for (int idx = 0; idx < data.length -1; idx++) {
for (int i = 0, k = 1; (i < data.length - 1 && k <= data.length - 1); i++, k++) {
if (data[i] > data[k]) {
temp = data[i];
data[i] = data[k];
data[k] = temp;
}
}
}
}
}
@Yur-ok
Copy link
Author

Yur-ok commented Dec 19, 2015

Я что, опять не правильно понял условия задачи?
Я сначало тоже подумал, что надо сделать так чтобы только большее число уезжало в конец массива, но потом посмотрел на свой массив arr и понял, что после того как 7 уходит в конец массива, то условие data[i] > data[k] справедливо для 5 и 4, 6 и 1.
И начал биться над решением того как этого добиться. Далось мне это решение ценой двух дней!!!
Мозг размял на 100% перебирая разные варианты. Спасибо Олегу, за подсказу, что надо модифицировать уже существующий метод. Поэтому все громоздкие конструкции я отбрасывал сразу.
Но когда увидел решение от Олега, то был очень сильно удивлен.
И как теперь мне оценят эту задачу?
С одной стороны я решил ее даже лучше, чем требовалось!
С другой я не правильно понял условия.

@liuiv15
Copy link

liuiv15 commented Jan 14, 2016

Действительно по заданию сортировка не была нужна, а только перемещение наибольшего элемента массива на последнее место. Уточняйте задания.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment