經典排序 —— 插入排序

基本思想

每步將一個待排序的記錄,按其順序碼大小插入到前面已經排序的子序列的合適位置,直到所有插入排序完爲止。java

算法實現

package cn.caojiantao.tutorials.sort;

/** * @author caojiantao */
public class Insert implements ISort {

    @Override
    public void sort(int[] data) {
        for (int i = 1; i < data.length; i++) {
            int key = data[i], j = i - 1;
            for (; j >= 0; j--) {
                if (key < data[j]) data[j + 1] = data[j];
                else break;
            }
            data[j + 1] = key;
        }
    }
}
複製代碼

複雜度

  • 時間複雜度 O(n2)
  • 空間複雜度 O(1)
相關文章
相關標籤/搜索