排序函数接口定义
public interface Sorter{
public <T extends Comparable<T>> void sort(T[] arr);
public <T> void sort(T[] arr, Comparator<T> comp);
}
冒泡排序实现
public class BubbleSort implements Sorter
{
public <T extends Comparable<T>> void sort(T[] arr)
{
for(int i = 0; i<arr.length-1; i++)
{
for(int j = 0; j<arr.length-i-1; j++)
{
if(arr[j].compareTo(arr[j+1]) > 0)
{
swap(arr[j], arr[j+1]);
}
}
}
}
public <T> void sort(T[] arr, Comparator<T> comp)
{
for(int i = 0; i<arr.length-1; i++)
{
for(int j = 0; j<arr.length-i-1; j++)
{
if(comp.compare(arr[j], arr[j+1]) > 0) // 大于0,说明arr[j] > arr[j+1]
swap(arr[j], arr[j+1]);
}
}
}
public <T> void swap(T[] arr, int i, int j)
{
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}