1. 程式人生 > >JAVA的插入排序,無方法體

JAVA的插入排序,無方法體

  1. 分析:
    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的數.
  2. 實現如下:
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));  最後列印輸出