—– 插入排序 —–
插入排序原理:將陣列中的每乙個元素與第乙個元素相比較!如果這個元素小於第乙個元素,則交換這兩個元素,然後迴圈這條規則。
如圖:
從圖中可以看到,
我們可以把過程理解為將從陣列第二個數開始(先把這個數定為要插入的數)依次與前面的數相比較,如果後面的數小,則交換位置,直到換到不必它前面的數小為止(就將要插入的數付給最後依次比數的位置)。
int arrs=
newint
;for
(inti=1
; iint
k=arrs[i];
//取出待插入元素
intj;
//作為插入位置
for(j=i-
1; j>=
0&&k
//將這個數與它前面的數一一比較
arrs[j+
1]=arrs[j];
//若這個數小,則把它前面的數向後移動
} arrs[j+
1]=k;
//最後找到插入位置,如上圖,3跟6 5 4 2 最後插入到原來4的位置
} system.
out.println(arrays.tostring(arrs)); }
插入排序的理解
設定乙個變數t用來提取a i 拿t與a i 左側變數進行比較,比t大的元素右移一位,拿t來補入這個空位。注意,在 實現時若不注意設定變數t,而用a i 直接比較的話,排序結果錯誤,因為當j i 1時,a j 這個數若大於a i 需要右移則變成a i 此時a i 已經改變,再與之前的值比較,發生錯誤。...
對插入排序的理解
public class insertsort array j temp 一直移動到比temp值小為止,資料插入 1 for 迴圈控制的是假定的插入值 因此根據演算法思路,i 的初始值為1。把下標為i 的資料存入臨時變數temp中,遍歷陣列內除第乙個資料外的全部資料。2 while迴圈用來判斷比較 ...
理解氣泡排序和插入排序
我們還是用揭撲克牌來理解這兩種排序方法,我們需要從小到大來排序,假定最小的牌和最大的牌是未知的,那麼對於氣泡排序來講,過程就是揭起第一張牌,又揭起第二張牌,兩張牌比較,留下小的,又揭第三張牌,再與手中的牌比較,以此 那麼無論你手中現在是什麼牌,你都需要將所有的牌全部揭起來比較之後,才能確定你拿到的是...