二分搜索的非递归实现

Posted zili

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分搜索的非递归实现相关的知识,希望对你有一定的参考价值。

/*非递归二分查找*/
#include<stdio.h>
void main(){
	int a[10]={11,21,31,41,51,61,71,81,91,101};
	int low=0,high=9;
	int key;
	printf("请输入要查找的数:");
	scanf("%d",&key);
	while(low<=high){
		int mid=(low+high)/2;
		if(a[mid]==key){
			printf("该数是第 %d 个数。",mid);
			return;
		}else if(a[mid]<key){
			low=mid+1;
		}else{
			high=mid-1;
		}
	}
	printf("查找失败!");
}

  

以上是关于二分搜索的非递归实现的主要内容,如果未能解决你的问题,请参考以下文章

二分查找非递归算法实现

LeetCode 0173.二叉搜索树迭代器:中序遍历的非递归实现

数据结构-PHP 实现二分搜索树

JavaScript实现二分查找(搜索)算法(非递归实现)

二分查找实践

二分搜索树的深度优先遍历和广度优先遍历