shell排序是對插入排序的乙個改裝,它每次排序把序列的元素按照某個增量分成幾個子串行,對這幾個子串行進行插入排序,然後不斷的縮小增量擴大每個子串行的元素數量,直到增量為一的時候子串行就和原先的待排列序列一樣了,此時只需要做少量的比較和移動就可以完成對序列的排序了。
1///
2///
default to sort assending
3///
execute the shell sorting;
4///
5///
6public
static
void
sortbyassending(
int array)724
else
2528}29
array[j]
=tmp;30}
31}32}
常見排序演算法 希爾(shell)排序
原理 一般,講序列分成n 2組,然後進行排序,後再分為 n 2 2組,再進行排序,以此類推。例子 63 92 27 36 45 71 58 7 分組1次 63 9227 36 45 7158 7 排序 45 7127 7 63 9258 36 分組2次 45 71 27 7 63 92 58 36 ...
排序演算法 Shell排序
基本思路 先把陣列分成差量為d 的幾組,即 a 1 a 1 d a 1 d d 為一組 a 2 a 2 d a 2 d d 為一組 然後依次對每組進行插入排序。各組排完序後 在 取第二個增量d2 d 重複上述 分組和排序。直到 增量 d 1 即 所有的數都放在同一組中進行插入排序。下面是 c語言實現...
排序演算法(四) Shell排序
排序思路 該演算法是直接插入排序的優化演算法。採用粗略排序到精確排序的思路,首先粗略的,按照步長step len 2,選取元素 相距step遠為一組 執行直接排序演算法,此時元素都是兩兩為一組。排序好後,在將步長放短,step step 2。依次類推。這樣的好處在於,每次執行直接插入排序時,排序複雜...