Java基础02 选择排序

2017-02-28  本文已影响0人  小心陨石

选择排序

选择排序和冒泡排序差不多,只不过它是每一次是固定位与其他位置进行比较交换,本文采用的是升序排列。
下面来看一下选择排序的代码:

  int[] arr1 = {5, 3, 2, 6, 1};
    for (int i = 0; i < arr1.length - 1; i++) {
        for (int j = i + 1; j < arr1.length; j++) {
            if (arr1[i] > arr1[j]) {
                int temp = arr1[i];
                arr1[i] = arr1[j];
                arr1[j] = temp;
            }
        }
    }

由if里的循环条件可以看出:外循环执行一次的时候,arr1[0]依次与后面的元素相比较,将小的数放在arr1[0]的位置,所以外循环执行了第一次的时候,找到了这组数的最小值,然后是arr1[1]与后面的元素进行比较,最后执行的是arr[3]与arr[4]的比较,比较出最后两个数字的大小,不用再执行第五次,所以外循环的判定条件为arr1.length - 1,而内循环每次都要比较到最后一位,所以判定条件为arr1.length,因为第一次是进行arr1[0]与arr[1]的比较,且,每次找到的最小数不再参与比较,所以j 的初始值为i + 1 。

上一篇 下一篇

猜你喜欢

热点阅读