Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Time Complexity_Mergesort - Fatal编程技术网

Algorithm 合并排序的运行时间,所有元素都相同

Algorithm 合并排序的运行时间,所有元素都相同,algorithm,sorting,time-complexity,mergesort,Algorithm,Sorting,Time Complexity,Mergesort,如果n个数字都相同,那么合并排序的运行时间是多少 它是在线性时间O(n)还是, 最佳情况O(nlogn)您需要重新检查合并排序的递归公式: T(n) = 2T(n/2) + \Theta(n) 现在,当所有值都相同时,让我们看看公式中会发生什么变化\Theta(n)用于合并两个子阵列。当两个具有相同成员的子阵列合并扫描这些阵列时,独立于相同成员,在您的情况下也是如此 因此,对于指定的情况,递归公式将保持不变;因此,时间复杂度将是θ(n logn)。这可以看作是合并排序的缺点之一。您需要重新检查

如果n个数字都相同,那么合并排序的运行时间是多少

它是在线性时间
O(n)
还是,
最佳情况
O(nlogn)

您需要重新检查合并排序的递归公式:

T(n) = 2T(n/2) + \Theta(n)
现在,当所有值都相同时,让我们看看公式中会发生什么变化<代码>\Theta(n)用于合并两个子阵列。当两个具有相同成员的子阵列合并扫描这些阵列时,独立于相同成员,在您的情况下也是如此


因此,对于指定的情况,递归公式将保持不变;因此,时间复杂度将是θ(n logn)。这可以看作是合并排序的缺点之一。

您需要重新检查合并排序的递归公式:

T(n) = 2T(n/2) + \Theta(n)
现在,当所有值都相同时,让我们看看公式中会发生什么变化<代码>\Theta(n)用于合并两个子阵列。当两个具有相同成员的子阵列合并扫描这些阵列时,独立于相同成员,在您的情况下也是如此


因此,对于指定的情况,递归公式将保持不变;因此,时间复杂度将是θ(n logn)。这可以看作是合并排序的缺点之一。

对于纯合并排序,移动次数始终相同O(n log(n))。如果所有元素都相同、顺序相同或相反,则比较次数约为最坏情况下比较次数的一半

基于现有数据顺序创建运行的自然合并排序对于所有相同的值或顺序或相反的顺序都需要O(n)时间。它的一个变体是混合插入排序+合并排序,称为Timsort


对于纯合并排序,移动次数始终相同O(n log(n))。如果所有元素都相同、顺序相同或相反,则比较次数约为最坏情况下比较次数的一半

基于现有数据顺序创建运行的自然合并排序对于所有相同的值或顺序或相反的顺序都需要O(n)时间。它的一个变体是混合插入排序+合并排序,称为Timsort


为什么不自己测试一下呢?我不明白你的问题。你是说最好的情况是O(n logn)。但是,在这之后,你会问它是O(n)吗?@MaruthiAdithya不,我不是说最好的情况是O(n log n),我是问在这种情况下,运行时间是线性时间还是最好的情况是O(n log n)。这是一个事实,尽管最佳情况下的运行时间是O(n logn)。“这是一个事实,尽管最佳情况下的运行时间是O(n logn)。”。。。为什么可能以线性时间运行是个问题?你回答了你自己的问题。为什么不自己测试一下呢?我不明白你的问题。你是说最好的情况是O(n logn)。但是,在这之后,你会问它是O(n)吗?@MaruthiAdithya不,我不是说最好的情况是O(n log n),我是问在这种情况下,运行时间是线性时间还是最好的情况是O(n log n)。这是一个事实,尽管最佳情况下的运行时间是O(n logn)。“这是一个事实,尽管最佳情况下的运行时间是O(n logn)。”。。。为什么可能以线性时间运行是个问题?你回答了你自己的问题。