使用泛型的几个排序算法的Java实现,提高了方法的适用性
1、降序or升序
private static boolean asc(boolean...ascend){
return ascend.length == 0 || ascend[0];
}
2、值交换
private static <T> void swap(T[] array,int begin,int end){
T t = array[begin];
array[begin] = array[end];
array[end] = t;
}
3、冒泡排序
public static <T> void bubbleSort(T[] array, int begin, int end, Comparator<T> cmp, boolean... ascend){
boolean _ascend = asc(ascend);
int _begin,rst;
while(begin<end){
_begin = begin;
while(_begin<end){
rst = cmp.compare(array[_begin],array[_begin+1]);
if(_ascend?rst>0:rst<0){
swap(array,_begin,_begin+1);
}
_begin++;
}
end--;
}
}
public static <T> void bubbleSort(T[] array, int begin, int end, Comparator<T> cmp, boolean...ascend){
boolean _ascend = asc(ascend);
while(begin<end){
for (int i = begin; i < end; i++) {
if(_ascend?cmp.compare(array[i],array[i+1])>0:cmp.compare(array[i],array[i+1])<0)