JAVA 冒泡排序、二分查找簡述

冒泡排序

1.原理圖:


2.代碼實踐

    private Integer[] arr = new Integer[]{5, 5, 1, 9, 44, 78, 11, 3};
     /**
     * 冒泡排序
     * 原理:相鄰元素兩兩比較,大的往後放
     */
    private void bubbleSort() {
        for (int i = 0; i < arr.length - 1; i++) {
            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;
                }
            }
        }    
     Log.i(TAG, "bubbleSort" + Arrays.toString(arr));//{1,3,5,5,9,11,44,78}
    }

二分查找

(基於有序數組)
1.原理圖:



2.代碼實踐:

private Integer[] arr = new Integer[]{1,3,5,5,9,11,44,78};
/**
     * 二分查找
     * 前提:數組是有序數組
     * 原理:每一次都查中間的那個元素,比較大或者小就能減少一半的元素
     */
 private int binarySearch(int value) {
        int minIndex = 0;
        int maxIndex = arr.length - 1;
        while (minIndex <= maxIndex) {
            int midIndex = (minIndex + maxIndex) >> 1;
            if (value== arr[midIndex]) {
                return midIndex;
            } else if (value< arr[midIndex]) {
                maxIndex = midIndex - 1;
            } else if (value> arr[midIndex]) {
                minIndex = midIndex + 1;
            }
        }
        return -1;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章