七大排序及其时间测试
一、冒泡排序 public class MyBubbleSort { /* 冒泡排序: 时间复杂度:O(n) ~ O(n^2) 最好:顺序 + 标记 最坏: 逆序 稳定性: 稳定 空间复杂度: 常数空间 ---> O(1) */ public static void bubleSort ( int [ ] arr ) { int len = arr . length ; //len是未排序的元素个数 while ( len > 0 ) { //flag:true 已经有序 boolean falg = true ; //一轮冒泡排序 for ( int i = 0 ; i < len - 1 ; i ++ ) { if ( arr [ i ] > arr [ i + 1 ] ) { MySort . swap ( arr , i , i + 1 ) ; falg = false ; } } if ( falg ) { //为真就是有序,有序就跳出 break ; } len -- ; } } } 二、堆排序 public class MyHeapSort { public static void shifDownBig ( int [ ] arr , int parent , int sz ) { int child = parent * 2 + 1 ; while ( child