zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

算法排序 常见 希尔
2023-09-14 08:57:16 时间

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

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


常见排序算法之插入排序——直接插入排序、希尔排序 哈喽大家好,我是保护小周ღ,本期为大家带来的是常见排序算法中的插入排序,主要有直接插入排序以及它的升级版——希尔排序,包您一看就会,快来试试吧~