📄 希尔排序.txt
字号:
Espate studio
--------------------------------------------------------------------------------
希尔排序
基本思想:
希尔是把直接插入方法分成插入步长由大到小不同的趟来进行,一开始步长较大,把序列 分成几个子表,每个子表结点少,直接插入排序效率高。以后步长逐渐减少直至为一。每次都对分成的子表进行插入排序。可见后一趟的插入排序就能充分利用前一趟的排序结果,后一趟的排序效率就会提高。
参考程序
假设一数组起始地址为 p,n个数的希尔排序如下
void shellsort(int * p,int n)
{
int h;
int e;
int i;
int j;
for(h=n/2;h>0;h=h/2)//初始步长设为n/2
for(j=h;j<n;j++)
{
if (p[j]<p[j-h])
{
e=p[j];
for(i=j-h;i>=0&&p[i]>e;i=i-h)
p[i+h]=p[i];
p[i+h]=e;
}
}
}
adiwei
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -