查看“︁比较排序”︁的源代码
←
比较排序
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{expand|time=2010-7-22}} {{Expand English|Comparison sort}} {{NoteTA |G1 = IT }} [[Image:Balance à tabac 1850.JPG|thumb|right|300px|将未贴标签的砝码用天平将按-{zh-hans:质量;zh-hant:質量;}-大小进行排序]] '''比较排序'''({{lang-en|Comparison sort}})是[[排序算法]]的一种,通过一个抽象的内容比较操作(通常是“小于或等于”操作)来确定两个元素中哪个应该放在序列前面。该算法的唯一要求就是操作数满足[[全序关系]]: *如果<math> a\leq b</math>并且<math> b\leq c</math>那么<math> a\leq c</math>([[传递性]])。 *对于<math> a </math>或<math> b </math>,要不<math> a\leq b</math>,要不<math> b\leq a</math>(完全性)。 对于<math> a\leq b</math>并且<math> b\leq a</math>这种情况,<math> a</math>和<math> b</math>都有可能被排在前面。这时输入的顺序就会决定最后的顺序。 比较排序类似于将未贴标签的砝码用[[天平]]将按-{zh-hans:质量;zh-hant:質量;}-大小进行排序,并且除了用天平测量两个砝码的-{zh-hans:质量;zh-hant:質量;}-之外不能用其他方法。 == 算法特例 == 比较排序包括: *[[快速排序]] *[[堆排序]] *[[歸併排序]] *[[插入排序]] *[[选择排序]] *[[冒泡排序]] 非比较排序包括: *[[基数排序]] *[[计数排序]] *[[桶排序]] == 性能限制和优势 == 比较排序有很多性能上的根本限制。在最差情況下,任何一种比较排序至少需要 [[大Ω符號|Ω]](''n'' log ''n'') 次比较操作<ref>{{Cite web |url=http://planetmath.org/encyclopedia/LowerBoundForSorting.html |title=存档副本 |access-date=2010-07-22 |archive-url=https://web.archive.org/web/20111012193135/http://planetmath.org/encyclopedia/LowerBoundForSorting.html |archive-date=2011-10-12 |dead-url=yes }}</ref>。这是比较操作所获的信息有限所导致的,或者说是[[全序集]]的模糊代数结构所导致的。从这个意义上讲,归并排序,堆排序在他们必须比较的次数上是[[渐进最优]]的,虽然这忽略了其他的操作。前面提到的三种非比较排序算法能在 [[大O符號|O]](n) 時間內完成,通过非比较操作使他们能够回避 [[大Ω符號|Ω]](''n'' log ''n'') 这个下界(假设元素為常數大小)。 不过,比较排序在控制比较函数方面有显著优势,因此比较排序能对各种数据类型进行排序,并且可以很好地控制一个序列如何被排序。例如,如果倒置比较函数的输出结果可以让排序结果倒置。或者可以构建一个按字典顺序排序的比较函数,这样排序的结果就是按字典顺序的。 比较排序可以更好地适应复杂顺序,例如[[浮点数]]。并且,一旦比较函数完成,任何比较算法都可以不经修改地使用;而非比较排序对数据类型的要求更严格。 这种灵活性和上述比较排序在现代计算机的执行效率一起导致了比较排序被更多地应用在了大多数实际工作中。 == 排序所需的比较次数 == 当<math>n</math>是所需排序的元素个数时,比较排序所需的比较次数按<math>n\log n</math>比例增加。 == 参阅 == == 注释 == <references/> {{排序算法表}} {{算法}} [[Category:排序算法]]
该页面使用的模板:
Template:Cite web
(
查看源代码
)
Template:Expand
(
查看源代码
)
Template:Expand English
(
查看源代码
)
Template:Lang-en
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:排序算法表
(
查看源代码
)
Template:算法
(
查看源代码
)
返回
比较排序
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息