核心思想為:把無序陣列的第乙個元素當成有序陣列,每次往後面(第二個元素開始)拿乙個元素,把它與有序陣列重新排序成有序陣列,直到拿到最後乙個元素為止.
注意:公升序就是假定有序陣列為公升序來求解的,降序是假定有序陣列是降序來求解的
int a=;以a陣列為例,可以得到如下所示的表
所以往後拿元素的總次數(外層迴圈)為陣列長度-1次,重新排序的次數(內層迴圈)為i+1次
//insertion sorter是插入排序的意思
//準備工作
int a=;
// int a=;
// int a=;
system.out.println("需要排序的原陣列a如下所示:");
for (int i = 0; i < a.length; i++)
system.out.println();//換行
//公升序(假定有序陣列為公升序)
for (int i = 0; i < a.length-1; i++) else}}
system.out.println("排序後的原陣列a(公升序排列如下所示:");
// 降序(假定有序陣列為降序)
for (int i = 0; i < a.length-1; i++) else}}
system.out.println("排序後的原陣列a(降序)排列如下所示:");
資料結構09 插入排序 希爾排序
1 利用位移法,每次選擇乙個還未排序的資料和已經排過序的所有資料進行比較 2 如果已排序的數比需要排序的數大,則向後移動,讓位 不是交換 3 直到找到已排序的數比需要排序的數小時,證明已經找到了需要排序數應該插入的位置 4 將需要排序的數插入進合適的位置 1 在插入排序的基礎上改進的 2 每次得到乙...
插入排序 折半插入排序
折半插入排序 binary insertion sort 直接插入排序採用順序查詢法查詢當前記錄在已排好序的序列中插入位置,這個 查詢 操作可利用 折半查詢 來實 現,由此進行的插入排序稱之為折半插入排序 binary insertion sort 演算法思想 1 將待排序的記錄存放在陣列r 1.n...
插入排序 折半插入排序
折半插入排序是基於直接插入排序的優化。直接插入排序 將第i個元素插入時,通過折半查詢的方式,來查詢第i個元素合適的位置。當0 i 1 位置上的元素都已經排序ok,現需要插入第i個元素,設其值為temp 令low 0,high i,mid high low 2。那麼temp可能插入的位置是 low h...