Правильно ли я написал сортировку вставками?
Изучаю различные методы сортировки. Руки дошли до сортировки вставками, код написал, все работает, но закрались сомнения, что это сортировка вставками, а не что либо другое.
private static int[] insertionSorting (int array[]) {
int temp;
for (int i = 0; i < array.length; i++) {
int count = 0;
for (int j = 0; j < i+1; j++) {
if(i+1==array.length) break;
if(array[i+1]<array[j]) {
temp = array[i + 1];
array[i + 1] = array[j];
array[j] = temp;
}
}
System.out.println();
for (int element : array) System.out.print(element+" ");
System.out.println();
}
return array;
}
Ответы (1 шт):
Автор решения: Sergei Buvaka
→ Ссылка
То что вы написали это пузырьковая сортировка. А сортировка вставками выглядит так:
public static void insertionSort(int[] array) {
for (int i = 1; i < array.length; i++) {
int current = array[i];
int j = i - 1;
while(j >= 0 && current < array[j]) {
array[j+1] = array[j];
j--;
}
// в этой точке мы вышли, так что j так же -1
// или в первом элементе, где текущий >= a[j]
array[j+1] = current;
}
}
А вообще такой простой вопрос можно было нагуглить.