美文网首页
排序-插入排序-折半插入排序及2路插入排序

排序-插入排序-折半插入排序及2路插入排序

作者: 睦月MTK | 来源:发表于2020-03-03 16:02 被阅读0次

    statement:本篇内容只是建立在我目前经验的基础之上,必然有不完善甚至是不正确的地方,请谨慎阅读,如果能指出错误与不足之处,更是不甚感激
    PS1:代码部分将使用Java语言进行展示
    PS2:本节排序算法基于顺序表排序


    一、原理
    • 直接插入排序:
      • 与直接插入排序不同的是,查找插入点的过程使用的是折半查找法
    • 2路插入排序:
      • 2路插入排序目的是为了减少插入后数据移动的操作
      • 原理是假设待排序队列第一个元素是整个序列中一个中间的值,然后比该样本值小的在一个数据结构内进行插入排序,比该样本值大的在一个数据结构内进行插入排序,相当于减少了一半的序列长度,自然也就减少了插入操作中移动元素的操作次数
    二、时间复杂度

    折半插入排序仅仅减少了查找插入点的时间,但总体时间复杂度仍然是O(n2)
    2路插入排序仅仅减少了移动元素的时间,如果遇到最坏的情况(即第一个值是整个序列中最大或者最小的),2路插入排序没有任何优势,其总体时间复杂度仍然是O(n2)


    参考文档:
    [1] [数据结构C语言版 -- 清华大学出版社]

    相关文章

      网友评论

          本文标题:排序-插入排序-折半插入排序及2路插入排序

          本文链接:https://www.haomeiwen.com/subject/ecshlhtx.html