数据结构与算法-插入排序

插入排序

存在序列A[1...n]经过插入排序后A序列:

A[1...n]中任意俩个元素满足: A[i] <= A[j]有且只有0 < i <= j <=n。

插入排序的伪代码实现:

for(i = 2; i < =n ; i++){

     // 每次需要插入的元素

     key = A[i];

    // 已经排序好元素的项数

     j = i-1;

   while j > 0 and key < A[j] {

        // 插入元素与排序好元素的每一项进行比较,若插入元素 < 排序好元素,将排序号元素的下标加1 即A[j+1] = A[j]

        A[j+1] = A[j];

        j--

 }

 A[j+1] = key;

}

插入排序算法时间复杂度

影响因素:项数 和 序列已经排序好程度

最好情况:序列已经排序好 ,时间复杂度 Θ(n)(n为项数)

最坏情况:序列按照反向排序好,时间复杂度 Θ(n2)(n为项数)

 

posted @ 2019-11-28 12:11  章峰  阅读(220)  评论(0)    收藏  举报