希尔(shell)排序
来源:互联网 发布:qt wifi windows 编辑:程序博客网 时间:2024/06/13 06:27
基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
希尔排序的时间复杂性在O(nlog2n)和O(n2)之间,大致为O(n1. 3)。希尔排序是不稳定的排序算法。
void ModInsSort(int Array[],int n,int delta){int i,j;for(i=delta;i<n;i+=delta)for(j=i;j<=delta;j-=delta){if(Array[j]<Array[j-delta])swap(Array[j],Array[j-delta]);elsebreak;}}void ShellSort(int Array[],int n){int i,delta;for (delta=n/2;delta>0;delta/=2)for(i=0;i<delta;i++)ModInsSort(&Array[i],n-i,delta);}
void ShellSort(int array[],int n){int d,i,j,temp;for(d=n/2;d>=1;d=d/2){for(i=d;i<n;i++){temp=array[i];for(j=i-d;(j>=0) && (array[j]>temp);j=j-d){array[j+d]=array[j];}array[j+d]=temp;}}}
- SHELL排序,希尔排序
- 希尔(Shell)排序
- shell希尔排序
- Shell Sort 希尔排序
- 希尔(shell)排序
- 希尔(shell)排序
- 希尔shell排序
- 希尔(shell)排序
- 希尔排序(Shell Sort)
- 希尔排序(Shell Sort)
- 希尔排序(Shell Sort)
- 希尔排序(Shell Sort)
- 希尔排序/shell sort
- 希尔排序(Shell Sort)
- 希尔排序 shell sort
- 希尔排序Shell Sort
- 希尔Shell排序
- 希尔排序(shell)
- 关于多重继承中覆盖虚基类的函数问题--《C++程序设计语言》
- 【半枚举】【动态规划】【NOI2004】曼哈顿
- Android学习笔记(5) ————SQLite的介绍与相关操作方法
- linux下history(历史)命令用法详解
- Android用ImageView显示本地和网上的图片
- 希尔(shell)排序
- Android学习笔记(6)————利用SQLiteOpenHelper管理SQLite数据库
- [Erlang 学习笔记] 使用 rebar 创建 application(basho- lager 应用实例)
- CString转换为LPSTR和LPSTR转化为CString
- 用 VC6 编译 log4cplus + stlport
- 测试用例的感想
- Drupal 7 开发实用工具
- 设计模式(2)-单例模式(Singleton)
- 织梦DedeCMS使用教程:留言簿模块