希尔排序(ShellSort)
来源:互联网 发布:java urlencoder 空格 编辑:程序博客网 时间:2024/06/06 06:49
//希尔排序:缩小增量排序//关键:增量序列的选择。不同的序列会影响算法的最坏运行时间//shell增量:ht=N/2(取下届),下届为(N^2)//Hibbard增量:1,3,7,...2^k-1,最坏运行时间下届为(N^3/2)//对于增量hk,所有相隔hk的元素都被排序//编程简单,运行时间分析复杂//本例使用shell增量#include <iostream>using namespace std;void ShellSort(int*a, int N);void ShellSort(int*a, int N){ int i, j, Increment, tmp; int k=0;//定义变量k用来查看每次Increment,可以发现增量递减,最后都可以到达1 for(Increment = N/2; Increment > 0; Increment/=2){ k++; cout<<Increment<<' '<<k<<endl; for(i = Increment; i < N; i++){ tmp = a[i]; for(j = i; j >= Increment; j -= Increment){ if(tmp < a[j-Increment]) a[j] = a[j-Increment]; else break; } //在上层for循环结束后,存在两种情况 //tmp比它之前所有距离为Increment的数都小,则将tmp插入到最前面 //遇到break;意味着,tmp>a[j-Increment],则将tmp插入a[j] a[j] = tmp; } }}int main(){ int arr[12]={3,4,5,6,24,13,26,1,2,27,38,15}; ShellSort(arr, 12); for(int i; i <12; i++){ cout<<arr[i]<<' '; }}
0 0
- 希尔排序(ShellSort)
- 希尔排序 (ShellSort)
- 希尔排序(Shellsort)
- 希尔排序(ShellSort)
- 希尔排序(shellsort)
- 希尔排序(ShellSort)
- 希尔排序(ShellSort)
- 希尔排序(shellSort)
- 希尔排序(shellsort)
- 希尔排序(ShellSort)
- ShellSort(希尔排序)
- 希尔排序(Shellsort)简介
- 排序算法之希尔排序(Shellsort)
- Java排序算法--希尔排序(Shellsort)
- 排序算法之希尔排序(ShellSort)
- 排序- 希尔排序 ShellSort
- 希尔排序(ShellSort程序完整版)
- 03_希尔排序(ShellSort)
- Linux一些常用命令
- webpack入门(一)
- USACO-2.1.2- Ordered Fractions
- lintcode(18)带重复元素的子集
- VS2015 汇编 外部链接库
- 希尔排序(ShellSort)
- 题目1123:采药
- 第五章 处理器拦截器详解
- spring @Scheduled 定时器
- OpenCV玩九宫格数独(三):九宫格生成与数独求解
- iOS开发 取消之前已经发送的Http请求
- Amazon EC2各实例特点
- 事件选择模型
- 帝国cms实操:Excel导入数据后提示“您来自的链接不存在”的解决办法