我试图自学CLRS的算法入门,我刚刚完成了对插入排序算法的编程。算法是直接从书中提取的,但我对我的Java代码并不太有信心。排序部分不正确。如果有人能指出我的错误,那就太棒了!
public static void main(String[] args){
int[] A = {5,6,8,9,1,2,3};
System.out.println(Arrays.toString(A));
InsertionSort(A);
System.out.println(Arrays.toString(A));
}
public static void InsertionSort(int[] A){
for(int j = 1; j < A.length; j++){
int key = A[j];
int i = j - 1;
while(i > 1 && A[i] > key){
A[i + 1] = A[i];
i = i - 1;
}
A[i + 1] = key;
}
}发布于 2014-08-05 04:42:20
public static void insertionSort(int[] A){
for(int j = 1; j < A.length; j++){
int key = A[j];
int i = j; //change - don't -1
while(i > 0 && A[i-1] > key){ //change here, must go from 0 and note change to index
A[i] = A[i - 1]; //change here
i = i - 1;
}
A[i] = key; //change here
}
}https://stackoverflow.com/questions/25131197
复制相似问题