public class insertsort
array[j]=temp;//一直移動到比temp值小為止,資料插入}}
}
1、for 迴圈控制的是假定的插入值
,因此根據演算法思路,i
的初始值為1。
把下標為i
的資料存入臨時變數temp中,遍歷陣列內除第乙個資料外的全部資料。
2、 while迴圈用來判斷比較 假定的插入值(temp) 與前面資料的大小。
判斷區域是變數 i 之前的資料區。
變數 j 是用來比較 ,變數 i 之前資料區內是否有比temp值還大的資料。
若前面的資料比temp大,則讓前面的資料整體後移;
最後所有比temp大的資料都向後移,
那麼前面下標為 j
的位置就是插入點,
接著讓temp插入到 j
位置;那麼temp就插入到了比它大的資料的前面。
3、對下圖array 陣列進行插入排序過程
array 3
11552
20 第一次for 迴圈,比較區域 ,temp=1,資料3比temp大,比較結果 ;
第二次 for 迴圈,比較區域 , temp=15, 比較結果 ;
第三次 for 迴圈,比較區域 , temp=5,資料15比temp大,比較結果 ;
第四次for 迴圈,比較區域,temp=2,資料3 ,5 ,15 比temp大,比較結果 ;
第五次for 迴圈,比較區域,temp=-1,比較結果。
插入排序就是 假定了陣列內第二個位置是乙個插入值,
用大迴圈for來
遍歷陣列內除第乙個位置上資料外的全部資料,
再用while迴圈來判斷比較插入值之前的資料大小,
一直移動到比插入值還小的位置處結束,
最後把這個資料值插入進去。
js演算法 對 插入排序 的理解
1,演算法簡介 插入排序的工作原理就是將未排序資料,對已排序資料序列從後向前掃瞄,找到對應的位置並插入。插入排序通常採用佔位的形式,空間複雜度為o 1 因此,在從後向前掃瞄的過程中,需要反覆的把已排序的元素逐步向後挪位,為新插入元素提供插入的位置。2,演算法描述 1 從第乙個元素開始,該元素可以被認...
插入排序的理解
插入排序 插入排序原理 將陣列中的每乙個元素與第乙個元素相比較 如果這個元素小於第乙個元素,則交換這兩個元素,然後迴圈這條規則。如圖 從圖中可以看到,我們可以把過程理解為將從陣列第二個數開始 先把這個數定為要插入的數 依次與前面的數相比較,如果後面的數小,則交換位置,直到換到不必它前面的數小為止 就...
插入排序的理解
設定乙個變數t用來提取a i 拿t與a i 左側變數進行比較,比t大的元素右移一位,拿t來補入這個空位。注意,在 實現時若不注意設定變數t,而用a i 直接比較的話,排序結果錯誤,因為當j i 1時,a j 這個數若大於a i 需要右移則變成a i 此時a i 已經改變,再與之前的值比較,發生錯誤。...