theboyaply
theboyaply
发布于 2020-01-06 / 830 阅读
0
0

java基础六(两种排序方法)

使用数组完成冒泡排序和快速直接排序

冒泡排序

每次循环,用第i和i+1两位数比较,取最大/小的数

        int[] number = new int[]{23, 54, 12, 7, -2, -89, 324, 0, 89, 34};
        for (int i = 0; i < number.length - 1; i++) {
            for (int j = 0; j < number.length - 1 - i; j++) {
                if (number[j] > number[j + 1]) {
                    number[j] = number[j] ^ number[j + 1];
                    number[j + 1] = number[j] ^ number[j + 1];
                    number[j] = number[j] ^ number[j + 1];
                }
            }
        }

快速直接排序

每次循环,找到最小/大的数放到最前面

        int[] number = new int[]{23, 54, 12, 7, -2, -89, 324, 0, 89, 34};
        for (int i = 0; i < number.length - 1; i++) {
            int temp = i;
            for (int j = i; j < number.length; j++) {
                if (number[temp] > number[j]) {
                    temp = j;
                }
            }
            if (temp != i) {
                number[i] = number[temp] ^ number[i];
                number[temp] = number[temp] ^ number[i];
                number[i] = number[temp] ^ number[i];
            }
        }

评论