希尔排序
来源:互联网 发布:淘宝产品市场调查表 编辑:程序博客网 时间:2024/05/20 23:04
希尔排序
1 、代码如下:
#include<iostream>using namespace std;void ShellInsert(int a[],int dk,int length);void ShellSort(int a[],int dt[],int t,int length);void print(int a[],int length);int main(){//int a[10]={49,38,65,97,76,13,27,49,55,04};int a[16]={49,38,65,97,76,13,27,49,55,04,88,33,22,2,3,2};int dt[4]={7,5,3,1}; print(a,16); ShellSort(a,dt,4,16); cout<<"the result :"<<endl; print(a,16);return 0;}void print(int a[],int length){ for(int i=0;i<length;i++) { cout<<a[i]<<" "; } cout<<endl;}/*** length:数组的长度* dk :增量**/void ShellInsert(int a[],int dk,int length){for(int i=dk;i<length;i++){ //发现该元素小于前一个增量位置的元素 if(a[i]<a[i-dk]) { int tmp=a[i]; int j; for(j=i-dk;j>=0&&tmp<a[j];j-=dk) { a[j+dk]=a[j]; } a[j+dk]=tmp; }}}/** dt[i]:建议为dt[i]=2^(t-i+1)-1即(t为趟数)*/void ShellSort(int a[],int dt[],int t,int length){ for(int i=0;i<t;i++) { ShellInsert(a,dt[i],length); cout<<"the "<<i+1 <<" trip..."<<endl; print(a,length); }}2、编译结果:
阅读全文
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- Selenium使用单例模式
- javascript:void(0)含义
- Android——ListView的优化
- Flex的mxml组件中进行图形绘制
- 写一个用矩形法求定积分的通用函数,分别求: ∫(0,1) sinxdx,∫(0,1)cosxdx,∫(0,1)e^xdx 。
- 希尔排序
- 网页滚动条滚动事件
- CSS之overflow
- Java8 新特性概述(60%)
- 交换链表中两个节点
- 服务器Servlet数据传到jsp页面
- 51Nod 1201 整数划分
- datatables 多条件搜索
- Thymeleaf系列三 调用对象的成员变量值、Map值、List值、属性的方法 、ctx对象、param、session和application