Так что я иду через некоторые из общих алгоритмов сортировки и написал это:вставки алгоритм сортировки ошибка в Java коде
Код:
public void insertionSort() {
int key;
int i;
for (int j = 1; j < this.a.length; j++) {
key = a[j];
i = j;
while (i > 0 && a[i-1] > key) {
a[i] = a[i-1];
i = i - 1;
}
a[i] = key;
}
}
Результат:
[email protected]:~/Dropbox/programming/java/algorithms$ javac sort.java
[email protected]:~/Dropbox/programming/java/algorithms$ java Test
49, 68, 60, 14, 70, 8, 83, 96, 29, 7, 92, 35, 17, 84, 31, 62, 48, 95, 16, 22, 31, 97, 72, 55, 88, 63, 1, 63, 96, 32, 74, 15, 92, 77, 50, 13, 12, 36, 90, 93, 20, 15, 67, 88, 23, 31, 95, 90, 86, 65, 35, 27, 60, 4, 90, 11, 22, 97, 65, 88, 23, 1, 25, 21, 9, 81, 87, 56, 2, 4, 63, 52, 55, 86, 62, 30, 55, 64, 19, 10, 45, 92, 87, 43, 39, 95, 20, 43, 3, 30, 74, 64, 4, 90, 91, 93, 94, 44, 87, 21,
49, 1, 1, 2, 3, 4, 4, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 16, 17, 19, 20, 20, 21, 21, 22, 22, 23, 23, 25, 27, 29, 30, 30, 31, 31, 31, 32, 35, 35, 36, 39, 43, 43, 44, 45, 48, 50, 52, 55, 55, 55, 56, 60, 60, 62, 62, 63, 63, 63, 64, 64, 65, 65, 67, 68, 70, 72, 74, 74, 77, 81, 83, 84, 86, 86, 87, 87, 87, 88, 88, 88, 90, 90, 90, 90, 91, 92, 92, 92, 93, 93, 94, 95, 95, 95, 96, 96, 97, 97,
Execution took: 110628 nano sek?
Как видно из теста, первое значение не зависит от сортировки. Что случилось с моим алгоритмом?
Обратите внимание, что в первом цикле, начинающемся с 'int j = 0' в неточности. Подумайте об этом .. Кроме того, я бы реорганизовал 'j' в 'index' и 'i' в 'previous' – Gevorg
** EDIT: ** Указанный выше код исправлен. – realPK