选择排序法可使用两种方式排序,一种是在所有的数据中,当从大到小排序,则将最大值放入第一个位置;当从小到大排序,则将最小值放入第一个位置。
1.无论是最坏、最好以及平均情况都需要进行n(n-1)/2次比较,故时间复杂度为O(n^2)。
2.由于选择排序是以最大或最小值直接与最前方未排序的键值交换,数据排序顺序很可能被改变,故选择排序为不稳定排序法。
3.只需一个额外的空间,因此空间复杂度为最佳。
4.此排序法适用于数据量小或有部分数据已经过排序的情况。
package Sort;
//设计一个选择排序法,对数列9,7,5,3,4,6进行排序
public class SelectionSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int data[]= {9,7,5,3,4,6};
int i,j,temp,k;
for(i=0;i<5;i++) {
for(j=i+1;j<6;j++) {
if(data[i]>data[j]) {
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
System.out.print("第"+(i+1)+"次排序结果:");
for(k=0;k<6;k++) {
System.out.print(data[k]+" ");
}
System.out.println();
}
}
}