java常用的排序和查找算法

来源:互联网 发布:淘宝达人怎样申请大v 编辑:程序博客网 时间:2024/05/01 14:58

排序

 private int[] arrA = {3, 2, 19, 5, 23, 28, 19, 6, 1};    //冒泡排序    //相邻的元素 依次比较,把值大的元素放在 数列的头部或者尾部    private void sort1() {        int temp = 0;        for (int i = 0; i < arrA.length - 1; i++) {            for (int j = 0; j < arrA.length - 1 - i; j++) {                //                if (arrA[j] > arrA[j + 1]) {                    temp = arrA[j];                    arrA[j] = arrA[j + 1];                    arrA[j + 1] = temp;                }            }        }        //打印        for (int i = 0; i < arrA.length - 1; i++) {            System.out.print(arrA[i] + "");        }    }    //选择排序    //数列中 的元素依次和其他元素比较,把值大的元素放在 数列的头部或者尾部    private void sort2() {        int temp = 0;        for (int i = 0; i < arrA.length - 1; i++) {            for (int j = arrA.length - 1; j > i; j--) {//                if (arrA[i] > arrA[j]) {                    temp = arrA[i];                    arrA[i] = arrA[j];                    arrA[j] = temp;                }            }        }        //打印        for (int i = 0; i < arrA.length - 1; i++) {            System.out.print(arrA[i] + "");        }    }

查找

//二分查找,比较key和中间值并收缩范围    private int find1(int key) {        int left = 0, right = arrA.length - 1, mid = 0;        int result = -1;        while (right >= left) {            mid = (left + right) / 2;            if (key == arrA[mid]) {                result = mid;                return result;            } else if (key > arrA[mid]) {                left = mid;            } else {                right = mid;            }        }        return result;    }    //顺序查找    private int find2(int key) {        for (int i = 0; i < arrA.length - 1; i++) {            if (key == arrA[i]) {                return i;            }        }        return -1;    }


0 0
原创粉丝点击