经典排序算法——直接插入排序

直接插入排序

•基本思想

•演示

•算法代码

•性能

直接插入排序是指每次从无序表中抽取一个元素插入到一个有序表中的合适位置,待所有元素都插入完后,得到一个新的有序表

具体操作是将一组数的第一个数据看成是一个代排的有序表,从第二个数据开始向有序表中插入数据,在有序表中从后向前依次比较寻求合适的插入位置,直到所有元素都插入完为止

以数据 8、5、2、4、3、1、7、6为例

首先将第一个数8看作一个代排的有序序列,从第二个元素5开始向前插入,5

2从有序表末尾开始依次向前比较,2

按照前面的方式42,则5的位置为插入点,则8和5依次向后移动一位,后续比较都依照此方式,直到所有元素插入完为止,得到新的有序表

32,4的位置为插入点,4、5、8后移一位

1

75,8的位置为插入点,8后移一位

65,7的位置为插入点,7、8后移一位

排序完

C++代码

Python代码

Java代码

直接从插入排序是稳定的排序算法,平均时间复杂度为O(N2),空间复杂度为O(1)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180819G0HBQ800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券