我一直在比较选择和插入排序。据我所知,插入排序对反转计数有效,而非依赖于它。但在最坏的情况下,总反转计数将是最大的并且在插入排序中,交换的数量将是最大/大于选择排序,因为在选择排序总数中,交换始终是输入大小“n”的顺序且不大于它会比插入排序小得多。
在最坏的情况下,时间复杂度将取决于比较的数量(在选择排序的情况下等于或小于)和交换的数量(在插入排序中更多)。 因此,如果交换/写入速度更快,我可以使用插入排序,但如果与比较相比,写入成本很高,那么我将使用选择排序。 那么,在最坏的情况下哪种排序算法会更好,如果我使用数组作为数据结构,如何确定比较速度更快或复制速度更快。
答案 0 :(得分:0)
插入排序和选择排序的最差情况下的比较次数是 O(nxn)< / strong>即可。但值得注意的是:
选择排序中的比较次数始终为 O(nxn) ,而:
在最佳情况下,插入排序的比较次数为 O(n)。最佳情况是数据已经排序。
因此,如果比较次数是衡量效果的标准, Go For Insertion Sort。
但是还应该注意:
对于最坏情况,选择排序中的互换次数为 O(n)。 while:
在最坏的情况下,插入排序中的互换次数最多可达 O(nxn)。
因此,如果交换次数是衡量效果的标准,选择排序。