【发布时间】:2012-03-21 03:05:19
【问题描述】:
我正在阅读排序方法,包括冒泡排序、选择排序、归并排序、堆排序、桶排序等。它们还包含时间复杂度,可以帮助我们了解哪种排序是有效的。所以我有一个基本的问题。如果我们包含数据,我们将如何选择排序。时间复杂度是帮助我们决定排序方法的参数之一。但是我们是否有另一个参数来选择排序方法?
只是想弄清楚排序以便更好地理解。
对堆排序有一些疑问:
我们在哪里使用堆排序?
堆排序的更大优势是什么(除了时间复杂度 O(n log n))?
堆排序有什么缺点?
堆的构建时间是多少? (我听说过 O(n) 但我不确定。)
我们必须使用堆排序或堆排序的任何场景都是更好的选择(优先级队列除外)?
在对数据应用堆排序之前,我们将查看哪些参数?
【问题讨论】:
-
“如果我们包含数据”是什么意思?您是在问如何为特定数据集选择排序方法?
-
您尚未接受您之前问题的任何答案。这会让很多人无法帮助你。
-
您的问题是否更好地表达为选择排序算法的标准是什么?如果是,请编辑Q标题。
-
您更新的问题看起来很像家庭作业,所以我给了您一个链接,可能对我的回答有所帮助。如果是作业,可以加
homework标签吗?如果没有,您可能想稍微缩小您的问题范围。
标签: c++ data-structures