【发布时间】:2015-12-29 18:17:52
【问题描述】:
在哪种测试用例中插入排序比选择排序表现更好?清楚地描述测试用例。
为什么在该测试用例中选择排序的性能比插入排序差?
我这样回答第一个问题:
O(n2)。当插入排序给定一个列表时,它获取当前元素并将其插入到列表的适当位置,每次插入时都会调整列表。这类似于在纸牌游戏中排列纸牌。
还有第二个问题:
因为选择排序总是进行 n(n-1)/2 次比较,但在最坏的情况下它只会进行 n-1 次交换。
但我不确定我的答案,有什么建议吗?
【问题讨论】:
-
你没有给出问题一的测试用例。
-
可能我不明白什么是测试用例,你能解释一下吗?
-
他们想要类似“当输入列表已经按降序排序时,选择排序的性能更差,例如
[4,3,2,1]”。 (不知道是不是真的,这只是答案格式的一个例子) -
就目前而言,您的问题实际上与 Python 无关;当然,附加特定于版本的标签还为时过早。你说的是排序理论,而不是算法的实现。
标签: sorting time-complexity insertion-sort selection-sort