希尔排序
来源:互联网 发布:大数据选股app 编辑:程序博客网 时间:2024/05/21 15:50
希尔排序主要是每次减少两个数之间的增量,让两个数再来进行比较。d=d/2,故包含两个函数,一个函数是将d每次减少,直到d==1,另一个函数是将增量旁边的两个数进行比较,
#include<iostream>#include<stdlib.h>using namespace std;void shellInsert(int a[],int d,int n){ for(int i=d;i<n;i++)//从第一个d的位置开始 { int j=i-d;//j先指向i前面的位置 int temp=a[i];//将a[i]的值赋值给temp while(j>=0 && a[j]>temp)//将a[j]从后向前找,直到找到比其小的数的位置 { a[j+d]=a[j];//向后挪动 j=j-d; } if(j!=(i-d))//存在比其小的数 { a[j+d]=temp;//将temp的数插入到a[j+d]中 } }}void shellSort(int a[],int n){ int d=n/2;//第一次是现将n/2赋值给d while(d>=1)//当d>=1或者d>0时,表示相邻两个元素距离 { shellInsert(a,d,n);//插入排序 d=d/2;//每次将增量减半 }}int main(void){ int a[30]; cout<<"Please input the number of the figure:"<<endl; int n; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } shellSort(a,n); for(int j=0;j<n;j++) { cout<<a[j]<<' '; } cout<<endl; return 0;}
1 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- [置顶] iOS中 支付宝钱包详解/第三方支付
- 【POJ】3187 - Backward Digit Sums(枚举)
- 数据结构之链表
- Effective STL 条款5
- android中listview紧接着Button按钮,发现最后一条item没有下横线??
- 希尔排序
- 【杭电oj】1220 - Cube(数学水题)
- 第七周项目1—两点间的距离(成员函数)
- 网页监控系统设计之使用mjpg-streamer
- java之Scanner详解
- 初衷
- 正则表达式基本语法
- getLeft,getTop,getRight,getBottm区别
- iOS中 HTTP/Socket/TCP/IP通信协议详