排序 插入排序

2022-09-15 03:48:09 字數 716 閱讀 5211

直接插入排序(insertion sort)的基本思想是:每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。

設陣列為a[0…n-1]。

1.      初始時,a[0]自成1個有序區,無序區為a[1..n-1]。令i=1

2.      將a[i]併入當前的有序區a[0…i-1]中形成a[0…i]的有序區間。

3.      i++並重複第二步直到i==n-1。排序完成。

package

sort;

public

class

insertsort ;

insertsort(a,8);

for(integer i : a)

system.out.println(i);

}static

void insertsort(int a, int

n) // j = -1 或者 a[j] <= temp時候退出

a[j+1] =temp;}}

}/**

改進版static void insertsort(int a, int n)

}}*/

插入排序 折半插入排序

折半插入排序 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...

插入排序 希爾插入排序

本文借鑑於lsgo實驗室創始人馬老師 演算法 希爾插入排序 delta len nums 2 while delta 0 shell delta,nums delta delta 2return nums defshell delta,key for i in range delta,len key...