程序员必须掌握的十种算法---二分查找算法
来源:互联网 发布:淘宝网唯品会 编辑:程序博客网 时间:2024/05/23 15:19
二分查找算法核心代码简单,但需要数组是经过排序的。
/**arr:要查找的数组*length:数组的长度*value:要查找的值*/int search(int *arr,int length,int value){ int head=0; int tail=length-1; int middle; //循环条件(算法核心代码) while(head<=tail) { middle=(head+tail)/2; if(arr[middle]>value) //如果中间值比value大,那么value如果存在,应该位于head~middle-1之间 tail=middle-1; else if(arr[middle]<value) //如果中间值比value小,那么value如果存在,应该位于middle+1~tail之间 tail=middle+1; else return middle; } return -1;}int main(){ int arr[100]; int length; int value; scanf("%d",&length);//输入数组长度 for(int i=0;i<length;i++)//输入数组数据(按升序排列) scanf("%d",&arr[i]); scanf("%d",&value); int result = search(arr,length,value); if(result!=-1) printf("find it, position: %d",result); else printf("not exit."); getchar(); return 0;}
0 0
- 程序员必须掌握的十种算法---二分查找算法
- 程序员必须掌握的十种算法---快速排序算法
- 程序员必须掌握的十种算法---Dijkstra算法
- 程序员必须掌握的十种算法---堆排序算法
- 程序员必须掌握的算法?
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
- 程序员必须掌握的六种基本排序算法
- 程序员必须掌握的七种排序算法
- 程序员必须掌握哪些算法?
- 程序员必须掌握哪些算法?
- 程序员必须知道的十大算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Java程序员必须掌握的8大排序算法
- Android 模拟器AVD,设置电池状态
- 深析静态链接库和动态链接库相同函数覆盖及库调用顺序问题
- 数据库常用
- Android设计模式—策略模式
- ActionBar之我的记录
- 程序员必须掌握的十种算法---二分查找算法
- iOS开发 -- 耦合 ,target/action设计模式
- linux查看目录占用空间
- 1053. Path of Equal Weight (30)
- C#中的JSON封装与解析
- c++ primer plus 第七章-编程题7.13.6《Fill_array,Show_array,Reverse_array》
- gitlab操作命令
- sshd源码下载与编译安装
- BMP位图信息·DIB结构