二分查找以及冒泡排序

来源:互联网 发布:广东省网络医院在哪里 编辑:程序博客网 时间:2024/05/16 09:44

二分查找

  • 描述:
    我们在猜1-100的数字时,一般比较靠谱的猜测是先取一个中间值。比如50,如果被猜数小则开始猜1-49之间的数字,再猜数字是不是25,依次往复。二分查找法道理也大体相同。
//查找这个数字是否在数组里,在则返回下标位置,不在则返回-1public int binaryFind(int[] arr,int searchKey){    int ins=0;    //用来存储数组的中间值    int low=0;    //一个数组的开始下标    int pow=arr.length-1;    数组的结束下标    while(true){        ins=(low+pow)/2;        if(arr[ins] == searchKey){            return ins;        }else if(low > pow){            return -1;        }else{            //被查找数小于中间数            if(arr[ins] > searchKey){                pow=ins-1;            }else{                low=ins+1;            }        }    }}

如果开始下标大于结束下标那肯定是不成立的,所以返回一个-1作为错误结果,如果成立,那么假如‘被猜测的数’小于中间数,那么数组范围缩小到开始下标和中间数之间,最后,结束下标得向中间数方向移动,用来缩小查找的范围。
这里写图片描述

冒泡排序

  • 最基础的排序算法
public static void main(String[] args) {        int[] arr=new int[]{1,2,15,222,45,60};        int temp=0;        for(int i=0;i<arr.length-1;i++){            for(int j=0;j<arr.length-1;j++){                if(arr[j]>arr[j+1]){                    temp=arr[j];                    arr[j]=arr[j+1];                    arr[j+1]=temp;                }            }        }        for(int num:arr){            System.out.println(num);    //1,2,15,45,60,222        }    }
0 0
原创粉丝点击