package cnic.cn.impl;
public class SelectionSort {
public static void main(String[] args) {
int[] array = new int[10];
array[0] = 0;
array[1] = 1;
array[2] = 2;
array[3] = 3;
array[4] = 4;
array[5] = 5;
array[6] = 6;
array[7] = 7;
array[8] = 8;
array[9] = 9;
int max;
int change;
for (int out = 0; out <= 8; out++) {
max = out;
for (int in = out + 1; in <= 9; in++) {
if (array[max] < array[in]) {
max = in;
}
}
change = array[out];// swap value
array[out] = array[max];
array[max] = change;
}
// output
for (int i = 0; i <= 9; i++) {
System.out.println(array[i]);
}
}
}
选择排序的效率问题:
选择排序和冒泡排序执行了相同次数的比较:N*(N-1)/2;当N的值很大的时候,比较的次数是最主要的,所以结论是选择排序和冒泡排序一样运行了O(n2)时间。但是选择排序无疑更快,因为它进行的交换少的多。当N值较小的时候,特别是交换的时间的时间级大于比较的时间的时候,选择排序实际上是相当快的。