1 #include "stdio.h"
2 #include "stdlib.h"
3 typedef int ElemType;
4 //直接插入排序
5 void InsertSort(ElemType A[], int n) {
6 int i, j;
7 for (i =2; i <= n; i++) {
8 A[0] = A[i];
9 j = i - 1;
10 while (A[0] < A[j]) {
11 A[j+1] = A[j];
12 j = j - 1;
13 }
14 A[j + 1] = A[0];
15 }
16 }
17 //折半插入排序
18 void BinSort(ElemType A[], int n) {
19 int i, j, low, high, mid;
20 for (i = 2; i <= n; i++) {
21 A[0] = A[i];
22 low = 1;
23 high = i - 1;
24 while (low <= high) {
25 mid = (low + high) / 2;
26 if (A[mid] > A[0])
27 high = mid - 1;
28 else
29 low = mid + 1;
30 }
31 for (j = i - 1; j >= high + 1; --j)
32 A[j + 1] = A[j];
33 A[high + 1] = A[0];//A[low]=A[0];
34 }
35 }
36 //希尔排序
37 void ShellInsert(ElemType A[], int n,int delta) {
38 int i, j;
39 for(i=1+delta;i<=n;i++)
40 if (A[i] < A[i - delta]) {
41 A[0] = A[i];
42 for (j = i - delta; j > 0 && A[0] < A[j]; j -= delta)
43 A[j + delta] = A[j];
44 A[j + delta] = A[0];
45 }
46 }
47 void ShellSort(ElemType A[], int n, int delta[], int dn) {
48 int i, j;
49 for (i = 0; i <= n - 1; ++i)
50 ShellInsert(A, n, delta[i]);
51 }
52 //希尔建议希尔排序
53 void ShellSort(ElemType A[], int n) {
54 int dk,i,j;
55 for(dk=n/2;dk>=1;dk=dk/2)
56 for (i = dk + 1; i <= n; ++i) {
57 if (A[i] < A[i - dk]) {
58 A[0] = A[i];
59 for (j = i - dk; j > 0 && A[0] < A[j]; j -= dk)
60 A[j + dk] = A[j];
61 A[j + dk] = A[0];
62 }
63 }
64 }

最新文章

  1. C# 字符串 数据类型 判断 与特定规则验证
  2. Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage&#160;规范标准化草案解决方案ThreadStatic
  3. 玩了一天的Git
  4. mysql编码详解
  5. Web::Scraper 页面提取分析
  6. RabbitMQ安装和使用(和Spring集成)
  7. sql还原(.bak文件还原)
  8. 从0引入 ASP.NET Identity Core
  9. IIS加载JSON文件 错误 404
  10. 江西理工大学南昌校区cool code竞赛
  11. CSS3 滤镜学习
  12. jQuery EasyUI Datagrid性能优化专题
  13. Java中BIO、NIO、AIO的区别和应用场景
  14. Java之旅_高级教程_实例_打印图形
  15. cocos2dx 如何获得节点的类型
  16. oracle逐步学习总结之oracle数字函数和日期函数(基础四)
  17. Mac环境下配置tomcat的步骤详解
  18. MySQL实现树状所有子节点查询的方法
  19. 转载:IE下div使用margin:0px auto不居中的原因
  20. 【matlab】图像直方图

热门文章

  1. Vue31 消息订阅和发布
  2. Element ui &amp;多选框、输入框、下拉框、开关、上传文件
  3. python3 os.getcwd()和os.path.realpath()区别
  4. 【KAWAKO】TVM-在ubuntu服务器上的安装
  5. 云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据
  6. filter 和 map 的异同
  7. Word 设置脚注和尾注
  8. CPU持续100%分析并解决
  9. Django中admin的一些知识点
  10. 修复gitlab权限(docker方式搭建)