插入排序算法
阿新 • • 發佈:2017-08-09
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)); } }
插入排序算法