排序算法之希尔排序
来源:互联网 发布:未登录淘宝联盟 编辑:程序博客网 时间:2024/05/02 01:37
2. 希尔(Shell)排序
希尔排序中维护着一个按照某个规律逐渐缩小的增量,算法则按照这个增量的间距比较元素,进行子序列的插入排序,直到增量变为1,完成最后一轮比较排序。
希尔排序时间复杂度最坏情况下为O(n2),其平均时间复杂度与每次选择的增量密切相关,但要优于插入排序。
下面的实现中,增量Increment的选择为N/2(N为原始数组的长度)。从代码中可以看出每一轮的比较和交换,都是由较小的选择排序组成。
void ShellSort(ElementType A[], int N)
{
int i, j, Increment;
ElementType Tmp;
for(Increment = N/2; Increment > 0; Increment /= 2)
{
for(i = Increment; i < N; i++)
{
Tmp = A[i];
for(j = i; j >= Increment; j -= Increment)
{
if(Tmp < A[j - Increment])
A[j] = A[j - Increment];
else
break;
}
A[j] = Tmp;
}
}
}
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- 排序算法之希尔排序
- Windows 2000 Loader What Goes On Inside Windows 2000: Solving the Mysteries of the Loader
- wince 下生成excel可人文件CSV文件
- Android学习笔记:线程:Message和Runnable
- linux下 apache与多个tomcat 集权负载均衡
- win7/vista系统下恢复wubi安装的ubuntu启动项
- 排序算法之希尔排序
- 工作的无奈
- android Manifest.xml选项
- 使用Explain关键字来确认是否可以通过索引来解决Order BY速度问题。
- windows 2003 组策略 设置开机登录时不需按CTRL+ALT+DEL 及关机时不需输关机原因
- 用户权限设置和进程权限提升
- 技术集结号 第二季
- 太空毒贩0.1总结
- c风格字符串和C++的string在文件名方面的使用注意