博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
50. 分别使用迭代或递归来实现对数组的二分查找(折半查找)
阅读量:4673 次
发布时间:2019-06-09

本文共 1086 字,大约阅读时间需要 3 分钟。

 

//二分查找,迭代版#include 
int binarySearch1(int *p,int low,int high,int find){ int mid; while(low<=high)//注意点1,当相等时仍需要再进行一次 { mid = (low+high)/2; if(p[mid] == find) return mid; else if(p[mid] < find) { low = mid+1; } else if(p[mid] > find) { high = mid-1; } } return -1;}//二分查找,递归版int binarySearch2(int *p,int low,int high,int find){ int mid; if(low<=high)//注意点1,当相等时仍需要再进行一次 { mid = (low+high)/2; if(p[mid] == find) return mid; else if(p[mid] < find) { return binarySearch2(p,mid+1,high,find); } else if(p[mid] > find) { return binarySearch2(p,low,mid-1,find); } } return -1;}int main(void){ int arr[10] = {
1,15,23,33,45,56,87,91,100,102}; int idx = binarySearch2(arr,0,9,91); if(idx != -1) { printf("your find idx = %d\n",idx); } else printf("find none\n"); return 0;}

 

转载于:https://www.cnblogs.com/ZhuLuoJiGongYuan/p/9523371.html

你可能感兴趣的文章
mac 上亚马逊密钥登录
查看>>
css选择器中:first-child与:first-of-type的区别
查看>>
nopcommerce 二次开发
查看>>
NHibernate入门实例
查看>>
IBM_DS5020磁盘阵列做raid、热备并把盘阵挂在服务器上的步骤
查看>>
svg制作风车旋转
查看>>
《软件工程》课堂作业:返回一个整数数组中最大字数组的和
查看>>
ACM 美素数 (没AC)
查看>>
Sqlserver学习研究
查看>>
VTK图形模型主要对象
查看>>
c# Linq实现 获得某一个路径下所有文件的名(不含扩展名)
查看>>
动静态广播的区别
查看>>
前缀式计算(前缀表达式)
查看>>
Linux常用命令大全
查看>>
当网站不允许上传ASP,CGI,CER等脚本文件时
查看>>
Access 中数据库操作时提示from子句语法错误
查看>>
【备战NOIP】[算法总结] 二分查找
查看>>
sort函数用于vector向量的排序
查看>>
《算法》-- 总结
查看>>
El表达式
查看>>