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

插入排序算法

insert .... 簡單 font 算法 有序 code col sys

插入排序算法分為直接插入、折半插入和希爾排序

1.直接插入排序

直接插入排序是一種最簡單的排序方法,其基本操作是將一條記錄插入到已排好序的有序表中,從而得到一個新的、記錄數量增1的有序表。

算法步驟

(1)設待排序的記錄存放在數組list[1....n]中,

(2)循環n-1次,每次使用順序查找法,查找list [ i ] (i=2,...,n)在已排好序的序列list[ 1...i-1 ]中的插入位置,

然後將list[ i ]插入表長為i-1的有序序列r[ 1...i-1 ],直到將list[ n ]插入表長為n-1的有序序列list[ 1...n-1 ],最後得到一個表長為n的有序序列。

如圖:8.2

技術分享

代碼如下

void insertSort(int list[]){
         for(int i=1;i<list.length;i++){
             int j=i;
             int temp=list[j];
             if(list[j]<list[j-1]){
                 while(j>0&&(temp<list[j-1])){
                 list[j]=list[j-1];
                 j--;
              }
                 list[j]
=temp; } System.out.println(Arrays.toString(list)); } }

插入排序算法