算法——二分搜索
2017-06-04 17:08
316 查看
思路:首先从数组中间的数把数组分成两部分,如果查找的数比中间的数大,说明接下来需要查找右边的部分,令中间的的下标+1为下一次开始查找的开始位置,再从low到high之间查找,一直循环。
4000
[root@bogon code]# cat erfen.c #include<stdio.h> int work(int x,int a[],int len) { int low,mid,high; low=0; high=len-1; while(low<=high) //注意需要=号 { mid=(low+high)/2; //mid中间的下标 if(x>a[mid]) //查找的值比中间下标mid位置上的值大 low=mid+1; //从mid的下一个位置开始查找,把范围缩小 else if(x<a[mid]) high=mid-1; else return mid; } return -1; //找不到 } int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int n; printf("please input a search num\n"); scanf("%d",&n); int t=work(n,a,10); if(t==-1) printf("no this num\n"); else printf("this num in %d\n",t); return 0; } [root@bogon code]# gcc erfen.c [root@bogon code]# ./a.out please input a search num 7 this num in 6 [root@bogon code]#
4000
相关文章推荐
- 算法练习--二分搜索哈希表-JS 实现
- 基本算法连载(1)-顺序搜索与二分搜索
- 博客学习十——二分搜索、扫描算法、C难点
- [算法专题] 二分搜索&排序数组
- 数据结构与算法(4)----->链表、二分搜索
- 面试复习-------算法与数据结构------二分搜索
- 算法总结-二分搜索
- 算法练习--二分搜索哈希表-JS 实现
- 【算法导论学习-004】二分搜索(BinarySearch)
- 折半查找,也称二分查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。
- (算法)二分查找的搜索区间
- 搜素算法——二分搜索-1003
- Ruby实现二分搜索(二分查找)算法的简单示例
- 【常用算法思路分析系列】与二分搜索相关高频题
- 由二分搜索引出的算法复杂度分析
- 二分搜索的递归实现算法
- 【编程素质】算法-二分搜索
- 算法与数据结构-二分搜索 讲解与java代码实现
- HDU 4004 The Frog's Games(基本算法-贪心,搜索-二分)
- 贪心算法之——摘枇杷(nyoj680)(贪心+二分搜索)