4-希尔排序C实现(递增递减的简单转换)
生活随笔
收集整理的這篇文章主要介紹了
4-希尔排序C实现(递增递减的简单转换)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、
函數:void She_Sort(int* head,int low,int high,int* Step_S,int Step_Sl,int Bool)
參數解釋
head:數組指針
[low, high]:需排序的數組范圍
Step_S:步長集合
Step_Sl:步長集合大小
Bool:等于1表示從小到大排序,不等于1從大到小排序
說明
例:
Step_S={3,2,1}意味著先后進行進行步長為3、2、1的插入排序
Step_S[i]=3
Step_L=3時,j屬于{0, 1, 2}
j=0,第一步對下標low+j+{0,3,6,9,12,15…}=low+{0,3,6,9,12,15…}插入排序
j=1,第二步對下標low+j+{0,3,6,9,12,15…}=low+{1,4,7,10,13,16…}插入排序
j=2,第三步對下標low+j+{0,3,6,9,12,15…}=low+{2,5,8,11,14,17…}插入排序
上面的三步覆蓋了整個需要排序的元素
以此類推
Step_S[i]=2
Step_S[i]=1
總結
以上是生活随笔為你收集整理的4-希尔排序C实现(递增递减的简单转换)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3-间隔插入排序C实现(希尔排序铺垫)
- 下一篇: 粒子群优化算法Matlab实现(待逐步解