一、基本原理
冒泡排序算法通过重复遍历要排序的数列,每次比较相邻两个元素,如果他们的顺序不符合我们要排的顺序,就把他们交换。重复进行此过程,直到没有数再进行交换,这时候排序完成。
二、实现代码
1.编写Bubble接口
public interface Bubble {
// 冒泡排序
public <T extends Comparable<T>> T[] bubbleSort(T[] arr1);
}
2.编写BubbleImpl实现类
public class BubbleImpl implements Bubble {
/**
* 冒泡排序
* <T>表明了这是一个泛型方法,并且声明了一个范型T
* 这里调用了comparaTo方法进行比较
* @param <T>
* @param t
* @return
*/
public <T extends Comparable<T>> T[] bubbleSort(T[] t) {
if (t == null || t.length < 2) {
return t;
}
for (int i = 0; i < t.length-1; i++) {
boolean flag = true;
for (int j = 0; j < t.length-1-i; j++) {
// 如果前面的数比后面的数大 则交换
if (t[j].compareTo(t[j+1])>0) {
flag = false;
T temp = t[j];
t[j] = t[j+1];
t[j+1] = temp;
}
}
if(flag) {
break;
}
}
return t;
}
3.编写Test测试类
import java.util.Arrays;
import java.util.List;
public class TestMethod {
public static void main(String[] args) {
// 声明一个Int类型数组
Integer[] arr1 = {5,3,9,8,10};
// 调用bubbleSort方法进行排序
new BubbleImpl().bubbleSort(arr1);
// asLint()方法将当前数组转化为list集合
List<Integer> list = Arrays.asList(arr1);
System.out.println(list);
}
}