JAVA的插入排序,無方法體
阿新 • • 發佈:2018-11-21
- 分析:
1.1. 插入排序和氣泡排序/選擇排序,都是常見的面試內容.下面給大家分析一下插入排序
1.2. 插入排序,按照字面意思就是將陣列中的其中一個值先取出賦值給temp,該值所在的位置i留空並用(j=i)接受位置,然後用temp依次與前面的值比較,如果比temp大,往後移一位,將temp的值放到比之小的數的後面2.插入排序,按照字面意思就是將陣列中的其中一個值先取出賦值給temp,該值所在的位置i留空並用(j=i)接受位置,然後用temp依次與前面的值比較,如果比temp大,往後移一位,將temp的值放到比之小的數的後面
1.3. 一般是預設從下標1開始,1前面的數預設為有序的,比較完一輪後,將該值插入對應的位置,然後計數器累加1,最後比較最後array.length-1的數. - 實現如下:
for(int i=1;i<array.length;i++){ //用於控制標槍取出次數 int temp=array[i];//temp相當於一個標槍,用於插入正確的位置 int j=i; //用於儲存當前標槍的位置,方便內部迴圈體使用 while(j>0&&temp<array[j-1]){ //j>0 用於控制迴圈體內下標不越界,也就是控制j-1不小於0 array[j]=array[j-1]; //標槍小於前值,則前值佔有標槍位置,實現包括i之前的位置有序 j--; //j--實現while迴圈體有序排序,不至於死迴圈 } array[j]=temp; //當從while迴圈跳出後,也就意味著temp不在小於前面的數,所有將標槍插入該位置 } //依次類推,將後面的數依次與前面的值比較,實現插入排序 System.out.println(Arrays.toString(array)); 最後列印輸出