比较速度与数组中的复制速度

时间:2018-01-02 19:14:11

标签: arrays algorithm performance sorting

我一直在比较选择和插入排序。据我所知,插入排序对反转计数有效,而非依赖于它。但在最坏的情况下,总反转计数将是最大的并且在插入排序中,交换的数量将是最大/大于选择排序,因为在选择排序总数中,交换始终是输入大小“n”的顺序且不大于它会比插入排序小得多。

在最坏的情况下,时间复杂度将取决于比较的数量(在选择排序的情况下等于或小于)和交换的数量(在插入排序中更多)。 因此,如果交换/写入速度更快,我可以使用插入排序,但如果与比较相比,写入成本很高,那么我将使用选择排序。 那么,在最坏的情况下哪种排序算法会更好,如果我使用数组作为数据结构,如何确定比较速度更快或复制速度更快。

1 个答案:

答案 0 :(得分:0)

插入排序选择排序的最差情况下的比较次数 O(nxn)< / strong>即可。但值得注意的是:

选择排序中的比较次数始终为 O(nxn) ,而:

在最佳情况下,插入排序的比较次数为 O(n)最佳情况是数据已经排序。

因此,如果比较次数是衡量效果的标准, Go For Insertion Sort。

但是还应该注意:

对于最坏情况,选择排序中的互换次数为 O(n) while:

在最坏的情况下,插入排序中的互换次数最多可达 O(nxn)

因此,如果交换次数是衡量效果的标准,选择排序。