查找算法
2015-07-29 11:32
232 查看
1 循环实现
[code]int binarySearch(int *a, int len, int x) { int low = 0; int high = len-1; int mid; while (low <= high) { mid = (low + high) / 2; if (a[mid] < x) low = mid + 1; else if (a[mid] > x) high = mid - 1; else { printf("found: a[%d]=%d\n", mid, a[mid]); return mid; } } printf("notfound\n"); return -1; }
2 递归实现
[code]int binarySearchRecursive(int *a, int x, int low, int high) { if (low > high) return -1; int mid = (low + high) / 2; if (a[mid] < x) return binarySearchRecursive(a, x, mid+1, high); else if (a[mid] > x) return binarySearchRecursive(a, x, low, mid-1); else return mid; } int binarySearchRecursive(int *a, int len, int x) { int ind = binarySearchRecursive(a, x, 0, len-1); if (ind == -1) printf("notfound\n"); else printf("found: a[%d]=%d\n", ind, a[ind]); return ind; }
相关文章推荐
- 一个使用Directx渲染的Havok程序
- tomcat部署javaweb程序的三种方式
- 让删除的数据彻底不可恢复
- zz 通过INFORMATION_SCHEMA.INNODB_TRX、INNODB_LOCKS、INNODB_LOCK_WAITS 三个表获取事务与锁的信息
- Android4.0系统接收不到广播的问题解析
- 为xampp 安装pear db (database) 模块
- php计算title标题相似比的方法
- PL/SQL Developer使用技巧、快捷键
- Cocos2d-x函数----addChild()
- Android 获取手机IMEI方法
- How To Handle a Loss of Confidence in Yourself
- 2015年7月29日:Windows 10正式发布
- 何谓同源策略以及解决同源策略的方法(ajax方法和http的方法)
- Android中的复制粘贴
- ionic项目之上传下载数据
- hdu 2795 Billboard(线段树单点更新)
- How To Handle a Loss of Confidence in Yourself
- DEDECMS首页和列表页调用单个图片集里的多张图片
- 关于atm使用
- An object provides services(每个对象都提供服务)