排序/查找模型及其最优时间复杂度,stable分析

排序/排序模型

  • 比较模型

  • 比较查找模型的最优时间复杂度为Omega(lgN),原因:

    • 比较查找模型就像一颗决策树(比如二分查找),每次比较的时间复杂度都是O(1),结果都是树上的叶子结点,那么执行比较的次数就是树的根节点到叶子结点的路径长度,就是lgN
  • 比较排序模型的最优时间复杂度为Omega(N * lgN),原因:

    • 把比较排序模型看成一颗决策树,结果同样存储在叶子结点上,所有叶子结点的数量(可能的比较结果)其实是N的排列组合(采用这种模型必须将给出数组中的元素两两全部比较,虽然可以用数学的传递性优化掉一部分,但是in general)=N!,则跟节点->叶子结点的路径长度=lgN!,根据Stirling公式可以推算出Omega(N * lgN)
  • RAM模型

    • counting sort
      • T(N) = O(N + K)
      • stable = true
    • radix sort
      • T(N) = O(N)
      • stable = true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,463评论 0 13
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 14,596评论 0 25
  • 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文...
    北方蜘蛛阅读 8,008评论 1 4
  • 原文链接 B树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(...
    非典型程序员阅读 4,919评论 0 3
  • equivalent someone or something that has the same size, v...
    夏炎学英语阅读 1,441评论 0 0

友情链接更多精彩内容