排序算法-直接插入排序

1. 算法描述

  1. 第i(1<=i<n)趟,数据序列为{a0,a1,a2...an-1},其前i个元素构成的子序列a{a0,a1...ai-1}是排序的,将元素ai插入到{a0,a1...ai-1}的适当位置,使得插入后的子序列仍然是排序的,a的插入位置由关键字比较决定。
  2. 重复上述操作,n个元素工序n-1趟扫描,每次讲一个元素插入到他前面的子序列中。
直接插入排序过程

2. 代码

3. 时间复杂度

  • 最好情况:序列是已排序序列。O(n)
  • 最坏情况:序列是反向序列。O(n^2)
  • 平均情况: 序列是随机序列。O(n^2)

4. 空间复杂度

  • O(1)

5. 稳定性

  • 稳定
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 排序的基本概念 在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快...
    Jack921阅读 1,480评论 1 4
  • 一、概述 排序算法概念 在计算机科学与数学中,一个排序算法是将一组杂乱无章的数据按一定的规律顺次排列起来的算法。排...
    简书冷雨阅读 1,068评论 0 0
  • //插入排序,把待排序的数组分为两部分,左边为已经有序的数组,右边为待排序的元素。然后不断的从右边取出元素放入左边...
    明月倚深秋阅读 236评论 0 0
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,747评论 0 15
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,235评论 0 52