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

作者: 大漠孤烟直_v | 来源:发表于2019-07-17 14:42 被阅读6次

冒泡排序

1.原理图:

冒泡排序原理图.png

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.原理图:


二分查找图解.png

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;
    }

相关文章

网友评论

    本文标题:JAVA 冒泡排序、二分查找简述

    本文链接:https://www.haomeiwen.com/subject/tluqlctx.html