常用算法积累
2016-03-04 14:04
183 查看
static int add(int n) { int sum = 0; n && (sum = add(n - 1) + n); return sum; } static void sort_q(int *a, int low, int high) { if (low >= high) { return; } int value = a[low]; int leftIdx = low; int rightIdx = high; while (leftIdx < rightIdx) { while (leftIdx < rightIdx && value <= a[rightIdx]) { rightIdx--; } a[leftIdx] = a[rightIdx]; while (leftIdx < rightIdx && value >= a[leftIdx]) { leftIdx++; } a[rightIdx] = a[leftIdx]; } a[leftIdx] = value; sort_q(a, low, leftIdx - 1); sort_q(a, leftIdx + 1, high); } static int search_half(int *a, int len, int key) { int rst = -1; int low = 0; int high = len - 1; int middle; while (low <= high) { middle = (high + low) / 2; if (key == a[middle]) { return middle; } else if (key > a[middle]) { low = middle + 1; } else if (key < a[middle]) { high = middle - 1; } } return rst; }
相关文章推荐
- Quartz作业调度框架
- 2015.03.03回顾
- 使用 GDB 调试多进程程序
- Facebook 工程师是如何高效工作的?
- 并查集
- python re正则表达式
- CSS3弹性布局内容对齐(justify-content)属性使用详解
- DeepMind创始人自述:我们的算法可以横扫一切棋类博弈
- java数据类型总结
- 安装ruby一定要注意的一步(ruby -v和 rbenv version结果不一致)
- 写在弥勒宝贝两周年之际
- Linux中批量重命名的方法
- Why is Map Reduce faster
- systemtap 问题1
- Linux 分区名称和磁盘路径匹配 及 磁盘读取
- 贷款平台微信后台流程策划
- String.getBytes()
- hdoj_2544----Bellman_Ford+队列
- 大话设计模式-装饰模式
- 源码推荐(03.04B):类似京东分类界面,ApplePay详细使用说明