Binary search
来源:互联网 发布:mp3音乐下载软件 编辑:程序博客网 时间:2024/05/29 17:25
Binary Search
Jon Bentley曾经说过类似的话:“90%的程序员无法正确实现二分查找算法
就冲着这句话去写binary search
binary_search 的算法实现部分
/*********************************************************code writer:EOFcode file:binary_search.ccode date:2014.9.18e-mail:jasonleaster@gmail.comdescription:You may have to KNOW that the @array wassequenced from min to max when you use "binary search".If this function find the element , return thelocation in the @array, otherwise return -1.********************************************************/#include <stdio.h>int binary_search(int* array,int size,int element){if(!array){printf("You passed NULL into function: %s()\n",__FUNCTION__);return -1;}int low = 0;int mid = 0;int high= 0;for(low = 0,high = size-1;low <= high;){mid = (low+high)/2;if(array[mid] < element){low = mid+1;}else if(array[mid] > element){high = mid-1;}else{/*** found that.*/return mid; }}return -1;}
测试用程序
#include <stdio.h>#include "binary_search.h"int main(){int number[10] = {0,2,6,8,10,15,18,40,99};int what_i_want = 18;int ret = 0;ret = binary_search(number,sizeof(number)/sizeof(number[0]),what_i_want);if(ret < 0){printf("Not found!\n");return 0;}printf("location:%d number[%d]:%d\n",ret,ret,number[ret]);return 0;}
update:2015.1.8
添加python版本的实现
'''Code writer : EOFCode date : 2015.01.08Code file : bs.pye-mail : jasonleaster@gmail.comCode description: Here is a implementation for how to do binary search in Python.'''def binary_search(array, element): high = len(array) mid = -1 for low in range(len(array)) : mid = (low + high)/2 if array[mid] < element : low = mid + 1 elif array[mid] > element : high = mid - 1 else : return mid return -1 def main(): number = [1,2,3,4,5] print number print number[binary_search(number,3)]main()
0 0
- Binary search
- Binary Search
- Binary Search
- binary search
- binary search
- Binary Search
- binary search
- binary search
- binary search
- binary search
- binary search
- binary search
- Binary Search
- Binary search
- Binary Search
- Binary Search
- Binary Search
- binary search
- cocos2dx3.2 由Hello_World看整体思路
- MFC ActiveX开发基础2:ActiveX控件在Internet上发布
- Apache Tomcat 8 WebSocket How-To 中文翻译版
- struts 拦截器设置防止表单的重复提交
- VC6.0创建hello-World程序
- Binary search
- android 4.4 设置默认短信 和来电短信拒接
- 如何重定向cin和cout?
- leetcode Single Number II
- PHP入门基础系列教程(价值499元)
- 滑动窗口协议
- 根据date创建目录
- 编译qgis小结
- [2015找工作]前端面试总结1