1 public static <T extends Comparable<? super T>> void insertSort(T[] arr) { 2 //基本数据类型要转化成封装类 3 //平均排序效率:T(n)=1/2+2/2+3/2+...+(n-1)/2=n(n-1)/4,比较n-1轮 4 //大O表示法:平均:O(n^2),最好:O(n),最差:O(n^2) 5 int i,j; 6 T temp; 7 int n = arr.length; 8 for(i = 1;i != n;++i) { 9 j = i; 10 temp = arr[i]; 11 while(j > 0 && temp.compareTo(arr[j - 1]) < 0) { 12 arr[j] = arr[j - 1]; 13 j--; 14 } 15 arr[j] = temp; 16 } 17 } 18 19 20 //测试 21 public static void main(String[] args) { 22 Integer[] arr = {2,323,435,32,23,45,3,65,78}; 23 insertSort(arr); 24 for(Integer i : arr) { 25 System.out.println(i); 26 } 27 }