数组中 Arrays类 、 选择排序 和 冒泡排序 、 二分查找

在开发中可以用  java.util.Arrays.sort(); 方法进行排序

import java.util.Arrays;

public class ArrayTest {
    /**
     * 选择排序
     * @param arr
     */
    public static void selectSort(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]){
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
    /**
     * 冒泡排序
     * @param arr
     */
    public static void bubbleSort(int[] arr){
        for(int i=0;i<arr.length-1;i++){
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j]<arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp; 
                }
            }
        }
    }
    
    /**折半查找。提高效率,但是必须要保证该数组是有序的数组。
     * @param arr
     * @param key
     * @return
     */
    public static int halfSearch(int[] arr, int key){
        
        int min = 0;
        int max = arr.length-1;
        int mid = (max+min)/2;
        
        while(arr[mid] != key){
            if(arr[mid] > key){
                max = mid - 1;
            }else if(arr[mid] < key){
                min = mid + 1;
            }
            if(min>max){
                return -1;// 操作数组如果元素不存在 返回-1
            }
            mid = (max+min)/2;
        }
        return mid;    
    }
    // 测试
    public static void main(String[] args) {
        int[] arr = {1,3,8,6,7,2,9};
        Arrays.sort(arr);
        bubbleSort(arr);
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}

 

posted @ 2017-02-14 19:10  Jonnyxu  阅读(397)  评论(0编辑  收藏  举报