public class Test {
/**
* 选择排序
*
* @param array
*/
public static void selectSort(int[] array) {
if (array == null) {
return;
}
int n = array.length;
if (n <= 1) {
return;
}
//遍历n-1次
for (int i = 0; i < n - 1; i++) {
//最小值下标
int minIndex = i;
//找出最小值的下标
for (int j = i + 1; j < n; j++) {
if (array[minIndex] > array[j]) {
minIndex = j;
}
}
//交换值
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
System.out.println("第" + (i + 1) + "次交换后结果," + Arrays.toString(array));
}
}
public static void main(String[] args) {
int[] array = {4, 2, 6, 1, 9, 8, 3, 5, 7};
selectSort(array);
}
}
算法思想:选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。