希尔排序(shellsort)
来源:互联网 发布:javascript库 编辑:程序博客网 时间:2024/05/23 18:29
希尔排序(shellsort)首先在概念上是一种经过改进的插入排序方法,实际上就是分组插入排序或者说是缩小增量排序。
先给出具体的C语言算法实现,如下:
void shellsort(int *a,int n){int i, j;int r;int temp;for (r = n / 2; r >= 1;r/=2) //分序列{for ( i = r; i < n; i++)//从中间处开始进行比较交换{temp = a[i];j = i - r; //j的初始值while (j>=0&&temp<a[j]){a[j + r] = a[j];//j+r=i-r+r=i(实质)j -= r; //j=j-r=i-r(实质)}a[j + r] = temp;//j+r=i-r+r=i(实质)}}}
从方法上来讲,希尔排序其实就是先将待排序的序列分成无数个子序列,而这些子序列之间往往相隔“增量”,一开始增量较大,我们在子序列中采取直接插入的方法排序,待结束后再逐次的减少增量的个数并继续在新的序列中执行直接插入操作,当经过数次增量递减的过程后,增量最终为一,插入操作结束后,排序结束。
应该注意到,每次增量减少时,意味着每个分组中的元素个数是增加的,相对应的,需要执行操作的组数减小但每组中比较的次数相应增加。
0 0
- 希尔排序(ShellSort)
- 希尔排序 (ShellSort)
- 希尔排序(Shellsort)
- 希尔排序(ShellSort)
- 希尔排序(shellsort)
- 希尔排序(ShellSort)
- 希尔排序(ShellSort)
- 希尔排序(shellSort)
- 希尔排序(shellsort)
- 希尔排序(ShellSort)
- ShellSort(希尔排序)
- 希尔排序(Shellsort)简介
- 排序算法之希尔排序(Shellsort)
- Java排序算法--希尔排序(Shellsort)
- 排序算法之希尔排序(ShellSort)
- 排序- 希尔排序 ShellSort
- 希尔排序(ShellSort程序完整版)
- 03_希尔排序(ShellSort)
- iOS中仅当视屏全屏播放时支持视屏旋转
- ubuntu配置JDK
- Office电脑使用常见问题及解决方法
- jasperreport+iReport 5.6.0 版本下载地址
- 常用英语单词
- 希尔排序(shellsort)
- 单向加密算法
- golang 本地连接mssql sql server
- 多边形和圆的面积并
- Git使用点滴记录
- UVA - 10129 Play on Words (欧拉回路)
- ZeroMQ研究与应用分析
- GitHub整理开源工程
- session多服务器共享的方案梳理