排序演算法四--插入排序
阿新 • • 發佈:2018-12-16
直接插入排序
直接插入排序是一種簡單插入排序,基本思想是:把n個待排序的元素看成為一個有序表和一個無序表。開始時有序表中只包含1個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第一個元素,將它插入到有序表中的適當位置,使之成為新的有序表,重複n-1次可完成排序過程 過程:
類似我們摸牌,一開始有一堆牌(待排序的)。由於第一次摸牌時手中沒牌,所以不需要排序。第二次摸牌時和手中第一張拍比較,如果它大,就放在它的後面。 每次摸牌都會把牌放在一個前面比自己小(或等於),後面比自己大(或等於)的位置。
平均時間複雜度:O(n2)
程式碼實現:
public static void insert_sort(int array[],int lenth){ int temp; for(int i=0;i<lenth-1;i++){ for(int j=i+1;j>0;j--){ if(array[j] < array[j-1]){ temp = array[j-1]; array[j-1] = array[j]; array[j] = temp; }else{ //不需要交換 break; } } } }