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 }