Java 中的冒泡排序
重点内容 个人认为此方法不同于普通的冒泡,直接上码了:
- // 首先创建一个接口Sorter
package xl.BubbleSort;
import java.util.Comparator;
public interface Sorter {
/**
* 排序
* @param list 待排序的数组
*/
public <T extends Comparable<T>> void sort(T[] list);
/**
* 排序
* @param list 待排序的数组
* @param comp 比较两个对象的比较器
*/
public <T> void sort(T[] list,Comparator<T> comp);
}
2.// 实现接口的类
package xl.BubbleSort;
import java.util.Comparator;
public class BubbleSorter implements Sorter {
/**
* ---------------冒泡排序--------------
* author xu
*/
@Override
public <T extends Comparable<T>> void sort(T[] list) {
boolean swapped = true;
for (int i = 1; i < list.length && swapped; ++i) {
swapped = false;
for (int j = 0; j < list.length-i; ++j) {
if (list[j].compareTo(list[j+1])>0) {
T temp = list[j];
list[j] = list[j+1];
list[j+1] = temp;
swapped = true;
}
}
}
}
@Override
public <T> void sort(T[] list, Comparator<T> comp) {
boolean swapped = true;
for (int i = 1; i < list.length && swapped; ++i) {
swapped = false;
for (int j = 0; j < list.length-i; ++j) {
if (comp.compare(list[j], list[j+1])>0) {
T temp = list[j];
list[j]= list[j+1];
list[j+1] = temp;
swapped = true;
}
}
}
}
}