1 . 插入排序
插入排序的原理:
插入排序就是将后面的数据插入到前面排序好的数据中。依次从后向前遍历已经排好序的数组,如果大于该数据就后移它。直到找到小于该数据的数,将数据插入其后面。
代码如下:
public void insertSort(int[] array) {
for (int i = 1; i < array.length; i++) {
int temp = array[i];
int j = i - 1;
for (; j >= 0 && temp < array[j]; j--) {
if (temp < array[j]) {
array[j + 1] = array[j];
}
}
array[j + 1] = temp;
}
}
平均复杂度:O(n^2)
最好情况是:该序列本身就是有序的 则时间复杂度是O(n-1)
最坏情况是:该序列原来是逆序的 则时间复杂度是O(n*(n-1)/2)