码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-11-28 13:28:54      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:伪代码   最好   排序   元素   数据结构与算法   nbsp   时间复杂度   反向   --   

插入排序

存在序列A(a1,a2,a3,a4,.....,an),n为有限值,经过插入排序后A序列:

A(b1,b2,b3,......,bn) 中任意俩个元素满足: bi <= bj 有且只有0 < i <= j <=n,反之也成立。

插入排序的伪代码实现:

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

     // 每次需要插入的元素

     key = ai;

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

     j = i-1;

   while j > 0 and key < aj

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

        a(j+1) = aj;

        j--

}

插入排序算法的时间

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

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

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

 

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

标签:伪代码   最好   排序   元素   数据结构与算法   nbsp   时间复杂度   反向   --   

原文地址:https://www.cnblogs.com/zhang-feng/p/11949120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!