对一列数组中的数值从小到大排序
核心实现
public static<E extends Comparable<E>> void sort(E[] arr){
for(int i=0;i<arr.length;i++){
//选择arr[i...n)中的最小索引
int minIndex = i;
for(int j=i;j<arr.length;j++){
if(arr[j].compareTo(arr[minIndex]) <0 ){
minIndex = j;
}
}
swap(arr,i,minIndex);
}
}
//调换位置
private static<E extends Comparable<E>> void swap(E[] arr,int i,int j){
E t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
实体类测试
public static void main(String[] args) {
Integer[] arr = {1,2,4,3,5,6};
long startTime = System.nanoTime();
SelectionSort.sort(arr);
//输出排序结果
for(int e : arr){
System.out.println(e+" ");
System.out.println();
}
long endTime = System.nanoTime();
//耗时
double time = (endTime -startTime)/1000000000.0;
System.out.println(time+"s");
}