漫画:插入排序是什么?

255 阅读1分钟

插入排序:

public static int[] insertionSort(int[] array){
    if (array.length == 0) return array;
    int current;
    for(int i =0;i<array.length-1;i++){
        current = array[i+1];
        int preindex = i;
        while(preindex >= 0 && array[preindex] > current){
            array[preindex +1] = array[preindex];
            preindex--;
        }
        array[preindex+1] = current;
    }
    return array;
}

首先还是给你一个动漫图,这样你也容易理解:

其实从图中你可以感受到插入排序是一个比较简单的排序,没有过多的复杂步骤。它排序的基本原理也非常的简单,对于没有排序的元素,在已排序的元素中从后往前依次扫描,找到合适的位置插入。

其实和人们整理桥牌的方法一样,一张一张的来,将每张牌插入到其他已经有序的牌中的适当位置。

具体的步骤:

步骤1: 从第一个元素开始,该元素可以认为已经被排序; 步骤2: 取出下一个元素,在已经排序的元素序列中从后向前扫描; 步骤3: 如果该元素(已排序)大于新元素,将该元素移到下一位置; 步骤4: 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置; 步骤5: 将新元素插入到该位置后; 步骤6: 重复步骤2~5。

全文终!