Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 选择排序比反向数组中的插入排序快吗?_Algorithm_Sorting_Insertion Sort_Selection Sort - Fatal编程技术网

Algorithm 选择排序比反向数组中的插入排序快吗?

Algorithm 选择排序比反向数组中的插入排序快吗?,algorithm,sorting,insertion-sort,selection-sort,Algorithm,Sorting,Insertion Sort,Selection Sort,如果我们有一个逆序数组,选择排序比插入排序快吗 我认为选择排序更快,因为我们有O(n^2)search和O(n)swap,但在插入排序中,我们有O(n^2)swap和O(n^2)search 谁能告诉我我说的对不对? 谢谢我已经在自己的Python实现中对这个主题进行了一些基准测试。这在很大程度上取决于你的输入类型。我发现对于随机排序的输入,插入排序稍微快一些(比如3%),但是对于反向排序的输入,选择排序要快得多。我一直听说选择排序是两种方法中速度更快的一种,但我自己的实现基准并没有反映这一点。

如果我们有一个逆序数组,选择排序比插入排序快吗

我认为选择排序更快,因为我们有
O(n^2)
search和
O(n)
swap,但在插入排序中,我们有
O(n^2)
swap和
O(n^2)
search

谁能告诉我我说的对不对?
谢谢

我已经在自己的Python实现中对这个主题进行了一些基准测试。这在很大程度上取决于你的输入类型。我发现对于随机排序的输入,插入排序稍微快一些(比如3%),但是对于反向排序的输入,选择排序要快得多。我一直听说选择排序是两种方法中速度更快的一种,但我自己的实现基准并没有反映这一点。

您需要计算两种方法的比较和元素分配,然后进行比较。正如您所注意到的,这两个参数都是$O(n^2)$,因此仅保留参数ś是不够的。