希尔排序
来源:互联网 发布:导入isp数据库 编辑:程序博客网 时间:2024/04/30 17:34
程序代码:
#include"stdio.h"#include"stdlib.h"#include<iostream>using namespace std;void swap(int&a, int&b){ int c; c = a; a = b; b = c;}//希尔排序法,就是将数据分组后进行排序,分组后可用直接插入排序、选择排序、冒泡排序等。void shell_sort(int a[], int n){ printf("the unsort data is:"); for (int i = 0; i < n; i++) printf("%d ", a[i]); cout << endl; int gap = n / 2; while (gap >=1) { //根据gap分组后,每一组的情况利用冒泡排序法 for (int i = 0; i < gap; i++) { for (int j = 0; j < n -gap; j += gap)//每一组要进行多少趟冒泡排序 { for (int k = i; k < n - gap*(1+j); k += gap)//每一次冒泡排序的情况 { if (a[k]>a[k + gap]) swap(a[k], a[k + gap]); } } } printf("the th sort data is:"); for (int i = 0; i < n; i++) printf("%d ", a[i]); cout << endl; gap /= 2; } printf("the sort data is:"); for (int i = 0; i < n; i++) printf("%d ", a[i]); cout << endl;}int main(){ int a[10] = { 3, 1, 9, 8, 5, 4, 7, 2, 6, 10 }; shell_sort(a, 10); system("pause"); return 0;}
实验结果:
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器
- ES6新特性
- https原理:证书传递、验证和数据加密、解密过程解析
- Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的信息实例讲解
- ZooKeeper服务命令
- 希尔排序
- ORACLE ORA-00600之[kkoipt:incorrect pwj], [0], [0], [0], [2], [1], [1]
- mysql sql语句大全
- Deeplearning中1X1卷积核到底有什么作用呢?
- jsp中的相对路径和绝对路径
- CentOS6.6 yum搭建dns服务器
- Caffe中的反向传播代码理解
- unity 实现pageView翻页效果
- UDP传输小实验