妖碧落

导航

选择排序 冒泡排序 二分查找法(有序的数组)

冒泡排序       每次比较,选取一个最大的,放在右边

public static void bubbleSort(int[] arr){
        for (int i = 0; i <arr.length-1; i++) {  //   5个数  比较4次就可以 
            for (int j = 0; j < arr.length-1-i; j++) {
                if (arr[j] > arr[j+1]) {    // 换位操作
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }      
            }             
        }        
    }

 

选择排序   每次比较,选取一个最小的 ,放在左边

public static void chioceSort(int[] arr){
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = i+1; j < arr.length; j++) {
                if (arr[i]>arr[j]) {
                    swap(arr, i, j); 
                }
            }
        }
    }
public static void swap(int[] arr,int i,int j) {
  int temp = arr[i];
  arr[i] = arr[j];
  arr[j] = temp;
}

 

二分查找

public static int getIndex(int[] arr,int value) {
        int min = 0;
        int max = arr.length-1;
        int mid = (min + max)/2;
        while(value!= arr[mid]){
            if (value > arr[mid]) { 
                min = mid + 1;
            } else if(value < arr[mid]) {
                max = mid - 1;
            }
            mid = (min + max)/2;
            
            if (min > max) {
                return -1;
            }
        }
        return mid;
    }

 

posted on 2019-08-05 11:38  妖碧落  阅读(230)  评论(0编辑  收藏  举报