Algorithm 合并排序的最佳情况

Algorithm 合并排序的最佳情况,algorithm,mergesort,Algorithm,Mergesort,我做了一个程序,计算不同n值的mergesort算法的成本,我取了成本变量,每次循环遇到或条件检查时,我都会增加它,当我得到排序数组时,我将该排序数组放入并再次输入合并排序,然后在第三种情况下,我反转排序数组,所以这是最坏的情况,但对于所有三种情况,我得到的成本相同,因此,Mergesort的最佳和最差情况是什么。Mergesort作为自顶向下的递归函数或使用小型本地指针数组的自底向上迭代实现的成本是相同的:O(N.log(N))。比较的次数将根据数组的实际内容而有所不同,但最多为2倍 通过在合

我做了一个程序,计算不同n值的mergesort算法的成本,我取了成本变量,每次循环遇到或条件检查时,我都会增加它,当我得到排序数组时,我将该排序数组放入并再次输入合并排序,然后在第三种情况下,我反转排序数组,所以这是最坏的情况,但对于所有三种情况,我得到的成本相同,因此,Mergesort的最佳和最差情况是什么。

Mergesort作为自顶向下的递归函数或使用小型本地指针数组的自底向上迭代实现的成本是相同的:O(N.log(N))。比较的次数将根据数组的实际内容而有所不同,但最多为2倍


通过在合并阶段添加左切片的最后一个元素和右切片的第一个元素之间的初始比较,可以线性地改进该算法。如果比较产生
它总是N log N,它不依赖于输入,因此对于基本合并排序没有最坏/最好的情况,移动的次数总是相同的。最佳情况下的比较数约为最坏情况下的比较数的1/2,如果数据已排序,则会发生比较。@Psypher:您可以通过单击其分数下方的灰色复选标记来接受其中一个答案。然后,出现。