第16周项目插入排序之折半插入排序
来源:互联网 发布:java开发环境哪个好用 编辑:程序博客网 时间:2024/06/05 11:02
问题及描述:
/* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: main.cpp * 作者: * 完成日期:2015年12月18日 * 版本号:codeblock* 问题描述: 插入排序之折半插入排序 * 输入描述: 无 * 程序输出: 见运行结果 */ #include <stdio.h> #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType[10]; typedef struct //记录类型 { KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType } RecType; //排序的记录类型定义 void InsertSort1(RecType R[],int n) //对R[0..n-1]按递增有序进行直接插入排序 { int i,j,low,high,mid; RecType tmp; for (i=1; i<n; i++) { tmp=R[i]; low=0; high=i-1; while (low<=high) { mid=(low+high)/2; if (tmp.key<R[mid].key) high=mid-1; else low=mid+1; } for (j=i-1; j>=high+1; j--) R[j+1]=R[j]; R[high+1]=tmp; } } int main() { int i,n=10; RecType R[MaxSize]; KeyType a[]= {9,8,7,6,5,4,3,2,1,0}; for (i=0; i<n; i++) R[i].key=a[i]; printf("排序前:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); InsertSort1(R,n); printf("排序后:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); return 0; }
运行结果:
0 0
- 第16周项目插入排序之折半插入排序
- 第16周-项目2—折半插入排序
- 排序之折半插入排序
- 【第16周-内部排序项目2—折半插入排序】
- 第16周项目1-验证算法(3)冒泡排序 折半插入排序
- 插入排序之折半插入排序
- 7 -- 插入排序之折半插入排序
- 插入排序之折半插入排序-binaryinsertsort
- 插入排序之折半插入排序
- 插入排序之--折半插入排序
- 插入排序之折半插入排序
- 第16周项目插入排序之希尔排序
- 第十六周项目2 折半插入排序
- 插入排序--折半插入
- 插入排序--折半插入
- 第十六周 项目一 (1) 插入排序之折半插入排序
- 第十六周--数据结构--项目一--插入排序之折半插入排序
- 插入排序之直接插入排序和折半插入排序
- 第十五周项目3 利用拉链法解决哈希冲突
- 直接插入排序
- 第十六周-冒泡排序的改进
- 第16周—项目3 归并排序算法的改进
- Palindrome Number
- 第16周项目插入排序之折半插入排序
- 数据结构实践——(2) 验证算法——分块查找
- 大二上学期的学习感想
- 第十六周 项目3 归并排序算法的改进
- 第十三周 项目4 二叉排序树中的查找路径
- 学期末总结
- 2015-12-18 第十六周 排序
- 冒泡排序
- 第九周实践项目二--对称矩阵压缩存储的实践和应用