目录
原代码(没使用泛型)
ublic class SelectionSort {
private SelectionSort(){};
public static void sort(int[]arr){
for(int i = 0; i < arr.length; i++){
int minIndex = i;
for(int j = i; j < arr.length; j++){
if(arr[j] < arr[minIndex]){
minIndex = j;
}
}
swap(arr, i, minIndex);
}
}
private static void swap(int []arr, int i,int j){
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
public static void main(String[]args){
int[]arr = {1, 4, 2, 6, 3, 5};
SelectionSort.sort(arr);
for(int i = 0; i < arr.length; i++){
System.out.printf("%d ", arr[i]);
}
for(int e : arr)
System.out.printf("%d ", e);
}
}
改造后(使用了泛型)
public class SelectionSort {
private SelectionSort(){};
public static<E extends Comparable<E>> void sort(E[]arr){
for(int i = 0; i < arr.length; i++){
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> 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, 4, 2, 6, 3, 5};
SelectionSort.sort(arr);
for(int i = 0; i < arr.length; i++){
System.out.printf("%d ", arr[i]);
}
for(int e : arr)
System.out.printf("%d ", e);
}
}