首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的插入排序

Java中的插入排序
EN

Stack Overflow用户
提问于 2014-08-05 04:26:06
回答 1查看 1.8K关注 0票数 2

我试图自学CLRS的算法入门,我刚刚完成了对插入排序算法的编程。算法是直接从书中提取的,但我对我的Java代码并不太有信心。排序部分不正确。如果有人能指出我的错误,那就太棒了!

代码语言:javascript
复制
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;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-05 04:42:20

代码语言:javascript
复制
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
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25131197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档