shell_sort
来源:互联网 发布:淘宝直播排名规则 编辑:程序博客网 时间:2024/06/06 03:22
希尔排序是直接插入排序的改进版。首先设置步长len,然后分组,下标之差为步长整数倍的分为一组。然后去len/2作为步长,直至len=1,此时就是直接
插入排序了。
代码如下:
#include<iostream>using namespace std;void shell_sort(int a[],int n){int i,j,len,tem; //len为步长len=n/2; //默认步长设为n/2while(len>=1){for(i=len;i<n;i++) //当len=1时就是插入排序了{tem=a[i];j=i-len;while(j>=len-1 && a[j]>tem){a[j+len]=a[j];j-=len;}a[j+len]=tem;}len/=2;}}int main(){int a[100];int i,n;while(cin>>n,n){for(i=0;i<n;i++)cin>>a[i];shell_sort(a,n);for(i=0;i<n;i++)cout<<a[i]<<" ";cout<<endl<<endl;}return 0;}
Attention:
①希尔排序是原地排序。
②时间复杂度为o(nlog2n),空间复杂度为o(n)。
- shell_sort
- shell_sort
- shell_sort
- shell_sort
- shell_sort 详解
- Heap_Sort,Shell_Sort and Quick_Sort
- 希尔排序(Shell_Sort)
- shell_Sort(希尔排序)
- 用python实现希尔排序(shell_sort)
- 排序算法之希尔排序<Shell_Sort>及其C语言代码实现
- vim配置2
- iphone http GET POST 调用webservice
- TCP/IP 相关内容
- 多态性——静态初始化块
- Hadoop NameNode单点问题解决方案之一 AvatarNode
- shell_sort
- CC++常用函数查寻表
- RAC在AIX上的安装
- 过滤器(Fileter)执行流程
- O(lgn)时间内找出有序数组中某个元素出现的次数
- 【redhat5.5】SELinux的基本配置和使用思路
- 启动数据库SQL Server Service Broker
- Oracle行锁定之存储过程
- Please change your current directory to a writable directory preferably outside of MATLAB installati