首页 > 代码库 > 冒泡排序和选择排序区别

冒泡排序和选择排序区别

/*冒泡排序:每一次循环数值较小的的就能像气泡一样慢慢浮现出来  
* 两层循环,第一层循环控制循环的次数, 第二层拿数组中的第二个数进行和第一层循环中的数进行比较,
 * */
        int[] nums = { 29, 13, 23, 10, 72, 41, 21, 77 };
        int temp = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = i + 1; j <= nums.length - 1; j++) {
                if (nums[i] > nums[j]) {
                    temp = nums[i];
                    nums[i] = nums[j];
                    nums[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(nums));

/*
 * 选择排序:两层循环,第一次是控制循环的次数,不拿数出来进行计较,
 * 第二次循环就是拿临近的两个数进行计较,第二次循环解决,最小数已经出来
 * */
        int[] nums = { 29, 13, 23, 10, 72, 41, 21, 77 };

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


/*

  * 冒泡是从第一个数开始,往下每个数进行比较,如果后面比前面小,就调换位置,这样一趟下来就将最大的放到最后,
   * 选择排序是将第一个数和后面的每个数进行比较,如果后面的比前面小,就两个数调换位置,最后就将最小的数放在最前面

*/