查找排序

来源:互联网 发布:网络投资平台那个好 编辑:程序博客网 时间:2024/05/17 00:53

查找排序算法:

第一次选择出一个最小(大)的元素放在第0个位置。依次放在第1,2,3...位置,即选择一个元素,放在有序的位置上,相对于冒泡排序减少了移动次数

一趟下来之后会筛选出最大(小)的元素,剩下n-1个元素,
然后再在这些元素里找到次大(小)的元素,依次类推,直到只剩下一个元素,所以外层循环0 <= i < n-1。
内层循环 j 初始值为外层循环的 i ,最大值为 n-1。

内层循环的逻辑:初始用min保存  i,然后将min对应元素与后面所有元素进行比较,如果对应值比min的大(小),则 min 与 j 交换值,要始终保证min对应的元素是最小。


    public void sort(int[] param) {        if (param != null) {            int min = 0;            int length = param.length;            for (int i = 0; i < length - 1; i++) {                min = i;                for (int j = i + 1; j < length; j++) {                    if (param[j] < param[min]) {                        min = j;                    }                }                swap(min,i);            }        }    }
    public void swap(int before, int after){        int temp = param[before];        param[before] = param[after];        param[after] = temp;    }


0 0