排序算法-气泡排序

时间:2020-04-28 18:04:50

标签: bubble-sort

我正试图了解气泡排序。在实现自己的版本以进行练习时,我以以下方式实现了它:

public int[] sort(int[] nums) {
        int x = 0;
        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < i; j++) {
                System.out.println(++x);
                if (nums[j] > nums[i]) {
                    int temp = nums[j];
                    nums[j] = nums[i];
                    nums[i] = temp;
                }
            }
        }
        return nums;
    }

注意内部循环如何从0变为i。

当我搜索该算法以查找常规实现时,我发现了该实现:

public int[] sortnew(int[] nums) {
        int x = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = 0; j < nums.length - i - 1; j++) {
                System.out.println(++x);
                if (nums[j] > nums[j+1]) {
                    int temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
        return nums;
    }

这里我从0到数组长度-i-1。

在两种情况下,“ x”的打印数量均相同。我相信这表明计算次数是相同的。那么实际上两者之间到底有什么区别? 谢谢!

0 个答案:

没有答案