简单算法

2018-06-06  本文已影响0人  xSpringCloud
 //冒泡排序
        int swap = 0;
        for (int i = 0; i <array.length ; i++) {
            for (int j = 0; j < array.length; j++) {
                //从大到小排列
                if(array[j] > array[i]){
                    swap = array[i];
                    array[i] = array[j];
                    array[j] = swap;
                }
            }
        }
private static int ef(int[] arr,int key){
        int low = 0;
        int high = arr.length - 1;
        int middle = 0;         //定义middle

        if(key < arr[low] || key > arr[high] || low > high){
            return -1;
        }
        while(low <= high){
            middle = (low + high) / 2;
            if(arr[middle] > key){
                //比关键字大则关键字在左区域
                high = middle - 1;
            }else if(arr[middle] < key){
                //比关键字小则关键字在右区域
                low = middle + 1;
            }else{
                return middle;
            }
        }

        return -1;      //最后仍然没有找到,则返回-1
    }
 public static int recursionSearch(int[] arr,int key,int low,int high){
        if(key < arr[low] || key > arr[high] || low > high){
            return -1;
        }
        int middle = (low + high) / 2;          //初始中间位置
        if(arr[middle] > key){
            return recursionSearch(arr,key,low,middle - 1);
        }else if(arr[middle] < key){
            return recursionSearch(arr,key,middle+1,high);
        }else{
            return middle;
        }
    }
上一篇下一篇

猜你喜欢

热点阅读