项目代码已经发布到github.欢迎各位下载:https://github.com/wahyd4/java-sorting
快到校招了,我还是把以前的数据结构的书拿出来复习了,不过这次我将用java 来实现数据结构中的一些算法。当然还是希望能够顺利通过这些公司的笔试。下面分享的是直接插入排序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public class InsertionSort {
private static int[] array = { 1, 20, 6, 3, 19, 7, 14, 12, 10 };
public static void main(String args[]) {
for (int outer = 1; outer = 0 && temp < array[inner]; inner--) {
array[inner + 1] = array[inner]; array[inner] = temp; temp = array[inner]; } } for (int flag : array) { System.out.println(flag); } } }
|
算法的时间复杂度:
直接排序最糟糕时需要比较的次数为(若数组长度为n):1+2+…+n-1=n(n-1)/2,复杂度为O(n2),一般情况下,复杂度也是如此。