`
128kj
  • 浏览: 588052 次
  • 来自: ...
社区版块
存档分类
最新评论

插入排序(JAVA)

 
阅读更多
网上的代码太多了,找些易理解的。
我们把数组分为已排序和未排序两部分,把未排序的元素一次一个插入到已排序部分的合适位置上。已排序部分逐渐增大,直到整个数组变成有序的。
下面通过一个例子来说明这个排序流程:
      待排序列:   49, 38 , 65 , 97, 76 , 13, 27 ,49

       插入49:   49

       插入38:   38, 49

       插入65:   38, 49,  65

       插入97:   38, 49,  65,  97

       插入76:   38, 49,  65,  76,  97

       插入13:   13, 38,  49,  65,  76,  97

       插入27:   13, 27,  38,  49,  65,  76, 97

       插入49:   13, 27,  38,  49,  49,  65, 76, 97

   大家想想在排队时,要把个子矮的人调整到适当的位置,都是和他前面的比较,如果比他前面的人矮,就插入到前面去,直到他前面的人都比他个子矮,这样最后就可以形成一个有序的队伍。下面是代码:

public class InsertSort {

    public static void main(String[] args) {
    int[] array = {10,-3,5,34,-34,5,0,9};   
    sort(array);
    for(int el : array) {
        System.out.print(el + " ");
    }
    }
    
    static void sort(int[] array) {
    int temp;
    int i,j;
    int length = array.length;
        
    for(i = 1; i < length; i++) {
        temp = array[i];
        for(j = i-1; j >=0; j--) {
        if(temp < array[j]) {
            array[j+1] = array[j];
        } else {
            break;
        }
        }
        array[j+1] = temp;
    }
    }
}




排序过程:
-3 10 5 34 -34 5 0 9
-3 5 10 34 -34 5 0 9
-3 5 10 34 -34 5 0 9
-34 -3 5 10 34 5 0 9
-34 -3 5 5 10 34 0 9
-34 -3 0 5 5 10 34 9
-34 -3 0 5 5 9 10 34

下载源码:
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics