java中的二分查找

来源:互联网 发布:钢管租赁软件下载 编辑:程序博客网 时间:2024/06/11 23:04

二分查找:在二分查找中,从数列中间开始查找,如果这个数小于我们查找的数,由于数列已经排序,那么无需浪费时间再搜寻左边的数,如果这个数大于我们要找的数,则下一次从左边开始搜寻。

代码如下:

public class Binary{public static void main(String[] args){int[] a={24,6,23,65,39,17,44,78,92};Binary.BubbleSort(a);        System.out.println("");int find=Binary.Binarysearch(a,17);if(find != -1){System.out.println("find the num indexof: "+find);}else{System.out.println("no find");}}public static int Binarysearch(int[] a,int num){int low=0;int high=a.length-1;while(low<=high){int mid=(high-low)/2; //与中间值比较,确定在左边还是右边区间,用以调整区域。if(num>a[mid]){low=mid+1;}else if(num<a[mid]){high=mid-1;}else{return mid;}}return -1;}public static void BubbleSort(int[] a){for(int i=a.length-1;i>0;i--){for(int j=0;j<i;j++){if(a[j]>a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}System.out.println("after sort,the array is: ");for(int n:a){System.out.print(n +" ");}}}

运行结果:

after sort,the array is:
6 17 23 24 39 44 65 78 92
find the num indexof: 1


原创粉丝点击