二分插入排序
来源:互联网 发布:根据数据库生成网页 编辑:程序博客网 时间:2024/06/05 00:47
2016.10.30
【算法思想】
核心是插入排序,找合适的位置的时候使用了二分算法
【代码实现】
# include <stdio.h>int n = 5;int a[10005];void binary_insertion_sort(void);int binary_search(int , int );int main(void){ int i; scanf("%d", &n); for (i = 1; i <= n; ++i) scanf("%d", &a[i]); binary_insertion_sort(); for (i = 1; i <= n; ++i) printf("%d\n", a[i]); return 0;} void binary_insertion_sort(void){ int i, j, index, t, k; for (i = 2; i <= n; ++i) { index = binary_search(i-1, a[i]); t = a[i]; for (k = 0; k <= i-index-1; ++k) a[i-k] = a[i-k-1]; a[index] = t; }}int binary_search(int r, int k){ int mid, l = 1; while (l < r - 1) { mid = (l + r) / 2; if (a[mid] < k) r = mid - 1; else l = mid; } if (a[r] > k) return r + 1; else if (a[l] < k) return l; else return r;}
1 0
- 插入排序 二分插入排序
- 插入排序-二分插入排序
- 插入类------二分插入排序
- 二分插入排序
- 二分插入排序。
- 二分插入排序
- 二分查找插入排序
- C++ 二分插入排序
- 二分查找插入排序
- 二分插入排序
- 二分插入排序
- 二分插入排序
- 二分插入排序
- 二分插入排序
- 插入排序 二分查找
- 二分插入排序
- 二分插入排序
- 二分查找插入排序
- 大数据实战(下)-搭建hadoop2 HA
- 《栈和队列(代码文件)》
- 人造网红: 玩转网络两月变网红 阔豪只是退休工人
- 信号量操作
- C++虚基类, 虚继承
- 二分插入排序
- [dijkstra//vis数组变形输入]昂贵的聘礼
- 基数排序,图解
- leetcode_374. Guess Number Higher or Lower 猜数字是比给定的数字高了还是低了,二分查找法
- redhat命令操作(二)
- win7 git上传本地项目至github
- NOI2013 快餐店
- Linux sqlite3基本命令
- Ubuntu16.04lts使用Anaconda安装tensorflow并配置GPU