/**
* 选择排序
* n表示数组中元素的个数
* Created by Administrator on 2017/11/4 0004.
*/
public class SelectSort {
public static void selectSort (int [] arr,int n){
for (int i=0 ;i<n;i++){
int index = i;
for (int j=i+1 ;j<n;j++){
if (arr[i]>arr[j]){
index = j;
}
}
/**
* 交换arr[i]与arr[index]
*/
int tmp = arr[i];
arr[i] = arr[index];
arr[index] = tmp;
}
}
/**
* 改进:
* 利用泛型来进行各种类型的选择排序
* @param arr
*/
public static void selectSortT (Comparable[] arr){
int n = arr.length;
for (int i =0 ;i < n;i++){
int index = i;
for (int j=i+1 ;j<n;j++){
if (arr[i].compareTo(arr[j])>0 ){
index = j;
}
}
Object tmp = arr[i];
arr[i] = arr[index];
arr[index] = (Comparable) tmp;
}
}
public static void main (String[] args) {
int a[] = {2 ,4 ,6 ,3 ,1 ,5 };
selectSort(a,6 );
for (int i=0 ;i<a.length;i++)
System.out.println(a[i]);
Integer a[] = {2 ,4 ,6 ,3 ,1 ,5 };
selectSortT(a);
for (int i=0 ;i<a.length;i++)
System.out.println(a[i]);
String[] b = {"d" ,"b" ,"c" ,"a" };
selectSortT(b);
for (int i=0 ;i<b.length;i++)
System.out.println(b[i]);
}