1. 程式人生 > >排序演算法四--插入排序

排序演算法四--插入排序

直接插入排序

直接插入排序是一種簡單插入排序,基本思想是:把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;
           }
       }
   }
}