我必须回答以下问题:你能想到一个场景,其中SelectionSort比InsertionSort更好(就结果的发展而言)。
我的想法是,如果您只需要例如在一个非常大的列表中排名前10位,您可以在第10步之后结束排序。这是对这个问题的有效答案吗?你能想到其他场景吗?
答案 0 :(得分:2)
在最坏的情况下,InsertionSort有Ο(n^2)
次交换,但SelectionSort为Θ(n)
。因此,如果写入比读取要昂贵得多,则SelectionSort更适合。
答案 1 :(得分:1)
当输入数组“接近排序”时,selecion排序比插入排序具有更好的性能。还有两件事你必须记住:选择排序只需要Θ(n)交换与Ο(n2)(在插入排序的情况下)交换;选择排序具有稳定性强的实现,插入排序没有。