开始学数据结构——(五):二分查找 ,非递归
来源:互联网 发布:mac os iso 编辑:程序博客网 时间:2024/06/08 14:39
/*二分查找法 非递归样式。
思路和递归的是一样的,往中间的值比较,然后大于或者小于都除掉了中间那个数-1 或者+1后再继续查找!
SQ 2014-04-15
*/
#include<stdio.h>
int aa[]= {0,1,2,3,4,5,6,7,8,9,10,13,15,17,19,21,23,25};
int main()
{
int m=0;
int n;
int bb[20]={0};
for(m=0 ; m < 16 ; m++)
printf(" =%d= " , aa[m]);
n =find(0,16,17); //17为你要寻找的数
printf("what the data you want to is %d and is locate at %d\n",aa[n] ,n );
return 0;
}
int find(int start ,int end ,int m){
int mid;
while(start < end) { //唯一和递归不一样的在这里!
mid = (end + start) / 2;
if ( m <aa[mid] )
end = mid -1;
else if (m > aa[mid])
start = mid +1;
else
return mid;
}
思路和递归的是一样的,往中间的值比较,然后大于或者小于都除掉了中间那个数-1 或者+1后再继续查找!
SQ 2014-04-15
*/
#include<stdio.h>
int aa[]= {0,1,2,3,4,5,6,7,8,9,10,13,15,17,19,21,23,25};
int main()
{
int m=0;
int n;
int bb[20]={0};
for(m=0 ; m < 16 ; m++)
printf(" =%d= " , aa[m]);
n =find(0,16,17); //17为你要寻找的数
printf("what the data you want to is %d and is locate at %d\n",aa[n] ,n );
return 0;
}
int find(int start ,int end ,int m){
int mid;
while(start < end) { //唯一和递归不一样的在这里!
mid = (end + start) / 2;
if ( m <aa[mid] )
end = mid -1;
else if (m > aa[mid])
start = mid +1;
else
return mid;
}
}
0 0
- 开始学数据结构——(五):二分查找 ,非递归
- 开始学数据结构——(五):二分查找 ,递归
- 数据结构与算法分析(Java语言描述)(15)—— 二分查找(递归与非递归)
- 二分查找(非递归)
- 二分查找(非递归)
- 二分查找——递归和非递归
- 二分查找——递归和非递归
- 二分查找——递归与非递归
- 二分查找——递归与非递归
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归和非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- Python中int()函数的用法
- listview item 左右滑动
- iOS开发:打包应用程序
- BigDecimal类的加减乘除
- Eclipse中10个最有用的快捷键组合
- 开始学数据结构——(五):二分查找 ,非递归
- ORA-00314: log 2 of thread 1, expected sequence# doesn't ORA-00312: online log 2 thread 1:
- case when then 中判断null的方法
- 报错 java.lang.OutOfMemoryError: PermGen space
- 选择的边界
- 并发性和并行性的区别
- C++模拟post HTTP编程
- android设置字体样式
- include与jsp:include区别