常见的排序算法二——希尔排序

原理:被称为增量缩小排序。先将序列按增量划分为元素个数相同的若干组,

使用直接插入排序法进行排序,然后不断缩小增量直至为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) 

上一篇:win8 开发之旅(6) --五子棋游戏开发


下一篇:oracle学习笔记----启动与关闭、权限管理