常见的排序算法二——希尔排序
生活随笔
收集整理的這篇文章主要介紹了
常见的排序算法二——希尔排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原理:被稱為增量縮小排序。先將序列按增量劃分為元素個數相同的若干組,
使用直接插入排序法進行排序,然后不斷縮小增量直至為1,
最后使用直接插入排序完成排序。
??
要點:增量的選擇以及排序最終以1為增量進行排序結束。
實現:
Void?shellSort(Node?L[],int?d)
{
While(d>=1)//直到增量縮小為1
{
Shell(L,d);
d=d/2;//縮小增量
}
}
Void?Shell(Node?L[],int?d)
{
Int?i,j;
For(i=d+1;i<length;i++)
{
if(L[i]<L[i-d])
{
L[0]=L[i];
j=i-d;
While(j>0&&L[j]>L[0])
{
L[j+d]=L[j];//移動
j=j-d;//查找
}
L[j+d]=L[0];
}
}
}
? ?這個希爾排序的算法 算法的復雜度是O(n2)?
總結
以上是生活随笔為你收集整理的常见的排序算法二——希尔排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP安装ZIP扩展
- 下一篇: 我的家庭私有云计划-2