下午開始看演算法導論:
涉及一比較簡單的插入排序:
輸入:n個數
輸出:輸入序列的乙個排序(重新排序),a'1<=a'2<=.....<=a'n
書上的演算法如下:
1 for j <- 2 to length[a]
2 do key <- a[j]
3 i <- j-1
4 while i>0 and a[i]>key
5 do a[i+1]<-a[i]
6 i <- i-1
7 a[i+1] <- key
我的演算法(與書上稍有不同)
1 for j <- 2 to length[a]
2 do key <- a[j]
3 i <- j-1
4 while i>0 and a[i]>key
5 do a[i+1] <- a[i]
6 a[i] <- key
7 i <- i -1
這樣是不是可以更節約時間呢??
書中演算法需做2,3,4,7步
而改進後只需做2,3,4步
想想也是書中演算法的第七步賦值可以放在當需要調整時候才賦值,否則不需要交換位置時,可以啥都不做嘛。
插入排序 折半插入排序
折半插入排序 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...