折半插入排序
来源:互联网 发布:飞鱼网络电视版本介绍 编辑:程序博客网 时间:2024/05/17 07:15
插入排序中要完成两种操作,找元素的插入位置 和 移动元素
折半插入排序,查找插入位置用折半查找,与直接插入排序比较看,减少了元素的比较次数,但没有改变元素的移动次数。
#include <iostream>using namespace std;//对于顺序表,折半插入排序void InsertSort(int a[], int n) { int i, j, low, high, mid; for (i = 2; i<n; i++) { a[0] = a[i]; //用a[0]记录保存待查入元素 low = 1; high = i - 1; while (low <= high) { mid = (low + high) / 2; if (a[mid]>a[0]) high = mid - 1; else low = mid + 1; } for (j = i - 1; j >= high + 1; --j) { a[j + 1] = a[j];//移动元素 } a[high + 1] = a[0]; //赋值 }}int main(int argc, char const *argv[]){ int a[8] = { 0,4,1,12,43,2,8,10 }; int i; InsertSort(a, 8); for (i = 1; i<8; ++i) { cout << a[i] << endl; } system("pause"); //在vs上运行,需要加,不然会运行,之后闪退 return 0;}
阅读全文
1 0
- 插入排序--折半插入
- 插入排序--折半插入
- 排序:折半插入排序
- 排序--折半插入排序
- 排序-折半插入排序
- 【插入排序】折半插入排序
- 插入排序--折半插入排序
- 折半插入排序,插入排序
- 折半插入排序
- 折半插入排序
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序 练习
- 折半插入排序
- 折半插入排序
- 折半插入排序
- 折半插入排序 Java
- 折半插入排序算法
- JavaScript基础学习(一)
- 批量删除(特殊)
- NYOJ 237 游戏高手的烦恼 (最小点覆盖)
- 最全Pycharm教程(34)——Pycharm内置终端以及远程SSH工具的使用
- ubuntu安装google-chrome浏览器
- 折半插入排序
- HDU 2121 Ice_cream’s world II(不定根最小树形图)
- EDA与VHDL作业(3)
- js 怎么截取img路径里的图片名
- HDU 6047 优先队列
- jQuery事件和动画
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 C cocout
- 【区块链】Truffle 安装和使用
- JavaScript- 使用 atan2 来绘制 箭头 和 曲线