查找排序算法:
第一次选择出一个最小(大)的元素放在第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;
}