希尔排序
来源:互联网 发布:威海打车软件 编辑:程序博客网 时间:2024/04/30 00:40
//不稳定 O(N^2)//一趟Hk排序就是对Hk个独立的子数组执行一次插入排序#include <cstdio>#include <cstring>#include <iostream>using namespace std;void ShellSort(int array[],int n){int increament;int temp;int i,j;for(increament=n/2;increament>0;increament/=2){for(i=increament;i<n;i++){temp=array[i];for(j=i;j-increament>=0&&array[j-increament]>temp;j-=increament)array[j]=array[j-increament];array[j]=temp;}}}int main(){int n;cin>>n;int array[n];for(int i=0;i<n;i++)cin>>array[i];ShellSort(array,n);for(int i=0;i<n;i++)cout<<array[i]<<(i==n-1?'\n':' ');return 0;}
//对于趟Hk排序就是对Hk个独立的子数组执行一次插入排序 下面是更明显的代码,但是复杂度高
void ShellSort(int array[],int n){ int increament; int temp; int i,j,x; for(increament=n/2;increament>0;increament/=2){//增量变化 for(i=0;i<increament;i++){//Hk个独立插入排序 的 起点 for(j=i+increament;j<n;j+=increament){ temp=array[j]; for(x=j-increament;x>=0;x-=increament){ if(array[x]>temp) array[x+increament]=array[x]; else break; } array[x+increament]=temp; } } } }
1 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 360浏览器以最高级模式渲染代码
- How to represent ROC curve when using Cross-Validation
- js 实现获取name 相同的页面元素并循环遍历
- 如何利用Android特点及设计模式 设计一个网络下载功能
- Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)
- 希尔排序
- mysql手撸代码-- 常见表操作标准sql
- 不朽凡人 > 第三百九十章 星主来了
- MVC、MVP、MVVM模式的区别
- 基于Postgres-XL的mpp分布式方案
- Android rild架构及流程介绍【转载】
- 文章标题 POJ 3272 : Monthly Expense (二分)
- leakNary 使用
- 机器学习笔记整理系列之(二)