思路:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕
例: 3,2,7,4,1,5
第一次后 :1,2,7,4,3,5
第二次后:1,2,7,4,3,5
第三次后:1,2,3,4,7,5
第四次后:1,2,3,4,5,7
详细代码:
package rank;
public class ChooseRank {// 选择排序
public static void main(String[] args) {
int[] array = { 3, 6, 1, 5, 2, 7 };
array = getChooseRank(array);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + "-");
}
}
public static int[] getChooseRank(int[] array) {//
for (int i = 0; i < array.length - 1; i++) {
int smallIndex = i; // 用来保存最小下标的值
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[smallIndex]) { // 比较获取最小的值
smallIndex = j;
}
}
int minNumber = array[smallIndex]; // 替换值
array[smallIndex] = array[i];
array[i] = minNumber;
}
return array;
}
}