排序之五:希尔排序(高效)
来源:互联网 发布:淘宝账号怎么绑定邮箱 编辑:程序博客网 时间:2024/05/23 21:34
基本思想:设待排序对象序列有 n 个对象,首先取一个整数 gap < n 作为间隔,将全部对象分为 gap 个子序列,所有距离为 gap 的对象放在同一个子序列中,在每一个子序列中分别施行直接插入排序。然后缩小间隔 gap,例如取 gap = 【gap/2】,重复上述的子序列划分和排序工作。直到最后取 gap == 1, 将所有对象放在同一个序列中排序为止。
void swap (int a[],int i,int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
void printA (int *a,int len)
{
int i;
for (i = 0; i < len; i++)
{
printf (“%-4d”,a[i]);
}
printf (“\n”);
}
//希尔排序
int main()
{
int a[10] = {9,2,1,5,4,7,6,3,8,0};
int len = sizeof(a)/sizeof(a[0]);
int i,j,get;int d = len; do{ d = d / 3 + 1; //每次排序的步长 for (i = d; i < len; i++) { get = a[i]; j = i-d; while (j >= 0 && a[j] > get) { a[j+d] = a[j]; j -= d; } a[j+d] = get; }}while (d > 1);printA (a,len);return 0;
}
阅读全文
1 0
- 排序之五:希尔排序(高效)
- 排序五之希尔排序(缩小增量排序)
- 插入排序高效改进之希尔排序
- 数据结构之希尔排序(五)
- 高效排序算法(希尔排序)
- 排序(之希尔排序)
- 数据结构之排序算法(五)-直接插入排序,希尔排序,直接选择排序
- 排序算法(五):希尔排序
- 排序算法(五) 希尔排序
- 五、排序算法(选择排序、插入排序、希尔排序)
- 排序之希尔排序
- 排序之希尔排序
- 排序之希尔排序
- 排序之希尔排序
- 排序之希尔排序
- 排序之希尔排序
- 排序之希尔排序
- 排序之希尔排序
- 致立男:完整的一个java web交互流程
- 【JVM】JVM垃圾回收机制
- 2017.6.4测试 题二 睡眠
- 不容易系列
- 【Java学习笔记】24:缓冲流(缓冲字节流/缓冲字符流)
- 排序之五:希尔排序(高效)
- TabLayout+第三方登录+Xutils获取数据
- 第八弹——阿里云对象云存储OSS
- P1514 引水入城
- java集合练习
- 第七次作业
- js读取cookie方法总结
- python爬虫学习第十三天——正则表达式
- Spring mvc json 乱码