选择排序的概念不做解释,直接上代码了。
代码如下:
package com.yarm.test;
public class Test {
/**
* 插入排序
* 时间复杂度:O(n^2)
* @param a
*/
public static <AnyType extends Comparable<? super AnyType>>
void insertSort(AnyType [] a) {
int j;
for(int p = 1; p < a.length; p++) {
AnyType tmp = a[p];
for(j = p; j > 0 && tmp.compareTo(a[j-1]) < 0; j--)
a[j] = a[j - 1];
a[ j ] = tmp;
}
}
//测试
public static void main(String[] args) {
//字符数组排序
String[] strArr = {"2", "1", "3","0"};
System.out.println("字符数组排序前:");
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
Test.insertSort(strArr);
System.out.println("字符数组排序后:" );
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
System.out.println("---------------------");
//整型字符数组排序
Integer[] intArr = {1, 2 ,5 ,3 ,4};
System.out.println("整型数组排序前:");
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
Test.insertSort(intArr);
System.out.println("整型数组排序后:" );
for (int i = 0; i < intArr.length; i++) {
System.out.println(intArr[i]);
}
}
}
控制台输出结果如下:
字符数组排序前:
2
1
3
0
字符数组排序后:
0
1
2
3
---------------------
整型数组排序前:
1
2
5
3
4
整型数组排序后:
1
2
3
4
5
时间复杂度:O(n^2)