二分排序

来源:互联网 发布:淘宝好点的男装店 编辑:程序博客网 时间:2024/06/10 15:37
public class BinarySearch {    public static int  binarySearch(int[] array,int x){        int result =-1;        int left = 0;        int right = array.length;        int index;        while(left<=right){            index = (left+right)/2;            if(array[index]==x){                result=index;                break;            }            if(array[index]<x){                left = index+1;            }            if(array[index]>x){                right = index-1;            }        }        return result;    }    public static int binarySearch(List<Integer> list,  Integer x){        int result =-1;        int left = 0;        int right = list.size();        int index;        while(left<=right){            index = (left+right)/2;            if(list.get(index)==x){                result=index;                break;            }            if(list.get(index)<x){                left = index+1;            }            if(list.get(index)>x){                right = index-1;            }        }        return result;    }    public static <T extends Comparable> int binarySearch(List<T> list,T x){        int result =-1;        int left = 0;        int right = list.size()-1;        int index;        while(left<=right){            index = (left+right)/2;            if(list.get(index).compareTo(x)==0){                result=index;                break;            }            if(list.get(index).compareTo(x)<0){                left = index+1;            }            if(list.get(index).compareTo(x)>0){                right = index-1;            }        }        return result;    }    public static void main(String[] args) {     /*   int[] array= new int[20];        for(int i=0;i<20;i++){            array[i]=i+1;        }        for(int i=0;i<=20;i++){            System.out.println(binarySearch(array,i));        }*/     List<Double> list = new ArrayList<>();        for(int i=0;i<20;i++){            list.add(i*1.01);        }            System.out.println(binarySearch(list, 5.05));    }}

原创粉丝点击