package Sort;
import org.junit.Test;
import Sort.utils.Swap;
/*
* 冒泡排序:
* 时间复杂度:O(n^2)
* 空间复杂度:O(1)
*/
public class BubbleSort {
public static <T extends Comparable<T>> void bubbleSort(T[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
boolean flag = true;// 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已然完成。
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j].compareTo(arr[j + 1]) > 0) {
Swap.swap(arr, j, j + 1);
flag = false;
}
}
if (flag) {
break;
}
}
}
@Test
public void testBubbleSort() {
// Integer[] arr = { 34, 8, 64, 51, 32, 21 };
String[] arr = { "abc", "cccc", "bbb" };
bubbleSort(arr);
for (String i : arr) {
System.out.print(i + " ");
}
}
}