直接插入排序是指將一個個待排序的元素插入到前面已經排好序的有序序列中去,直到插完所有元素為止,主要步驟如下:
1)先假設第一個元素已經排好序。
2)然後依序取出還需要進行排序的下一個元素,也就是排序完成的元素後面的下一個元素,取出下一個元素,設為待插入元素,在已經排序的元素序列中從後向前掃描,如果該元素(已排序)大於待插入元素,請將該元素移到下一位置。
3)重複步驟2,直到找到已排序的元素小於或等於待排序元素的位置,插入元素。
4)重複步驟2、步驟3,完成排序。
例如:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(Stringargs[]){int[]arr=newint[]{17,62,39,52,8,24};for(inti=1;i<arr.length;i++ ){//從第二個元素開始比較inttemp=arr[i];//記錄目前元素for(intj=i-1;j>=0;j--){//從最後一個元素開始比較if (arr[j]>temp){//如果比目前元素大arr[j+1]=arr[j];//從該處往後所有元素向後移動一位arr[j]=temp;/ /將目前元素插入arr[j]中}}}for(inti=0;i<arr.length;i++){System.out.print(arr[i]+);}}}
運行結果如下:
81724395262