二分查找(递归和非递归实现)

 2023-09-11 阅读 22 评论 0

摘要:当然前提是:有序数列,这里以升序为例! public class binarySearch {public static void main(String[] args) {int arr[]={1,2,3,4,5,6,7,8,9};int key=9;//int result=binarySearchMethod_noDiGui(arr,key);//非递归实现int result=bi

当然前提是:有序数列,这里以升序为例!

public class binarySearch {public static void main(String[] args) {int arr[]={1,2,3,4,5,6,7,8,9};int key=9;//int result=binarySearchMethod_noDiGui(arr,key);//非递归实现int result=binarySearchMethod_DiGui(arr,0,arr.length-1,key);//递归实现System.out.println("结果:"+result);}public static int  binarySearchMethod_noDiGui(int arr[],int key){int left =0;int right=arr.length-1;int mid=(left+right)>>1;while(left<=right){if(arr[mid]==key){return mid;}else if(arr[mid]>key){right=mid-1;}else{left=mid+1;}mid=(left+right)>>1;}return -1;}public static int binarySearchMethod_DiGui(int arr[],int left,int right,int key){int mid=(left+right)>>1;if(left>right){return -1;}if(arr[mid]==key){return mid;}else if(arr[mid]>key){right=mid-1;return binarySearchMethod_DiGui(arr,left,right,key);}else{left=mid+1;return binarySearchMethod_DiGui(arr,left,right,key);}}
}

 

转载于:https://www.cnblogs.com/felixzh/p/4742520.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/45770.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息