Я попытался преобразовать этот псевдокод вставки в java, но не получил правильный вывод. Вот псевдокодПреобразование вставки Сортировка псевдокода для запуска Java-кода
INSERTION-SORT(A)
1 for j ← 2 to length[A]
2 do key ← A[j]
3 ▹ Insert A[j] into the sorted sequence A[1 j - 1].
4 i ← j - 1
5 while i > 0 and A[i] > key
6 do A[i + 1] ← A[i]
7 i ← i - 1
8 A[i + 1] ← key
А вот мой Java-код
public class Insertion {
public static void print(int[] A){
for(int i = 0; i > A.length; i++){
System.out.print(A[i] + " ");
}
System.out.println();
}
public static void insertionSort(int[] A){
for(int j = 1; j < A.length; j++){
int key = A[j];
int i = j - 1;
while(i >= 0 && A[i] > key){
A[i + 1] = A[i];
i = i - 1;
}
key = A[i + 1];
}
print(A);
}
public static void main(String[] args){
int[] x = {5,2,4,6,1,3};
insertionSort(x);
}
}
Что печатает только тот же массив A. Не сортированные или что-либо просто {5,2,4,6,1, 3}.
'J> A.length'? –
Зная основную идею, нужно просто написать ее самостоятельно, вы вставляете каждый элемент из массива inordered в упорядоченный, при каждой вставке, которую вы держите в заказе, нажав текущий элемент, пока он больше не нарушит условие порядка –