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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/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
Sorting 使用8个元素合并排序17个比较_Sorting_Mergesort - Fatal编程技术网

Sorting 使用8个元素合并排序17个比较

Sorting 使用8个元素合并排序17个比较,sorting,mergesort,Sorting,Mergesort,我在解决一个问题时遇到了这个解决方案,创建数字1到8的顺序,这将导致merge sort进行最坏情况下的17次比较 [7,3,5,1,8,4,6,2],我解决了它,发生了16次比较,根据解决方案,是17次比较?如有任何解释,将不胜感激 需要4次比较才能创建4个大小为2的排序运行。需要2组3个比较来创建2个大小为4的排序运行。然后需要7次比较才能创建1次大小为8的排序运行。我正确地得到了前2次(4次比较和6次比较),但我仍然不确定最后如何得到7次,最后得到了6次。介意再详细说明一下吗?我使用的是计

我在解决一个问题时遇到了这个解决方案,创建数字1到8的顺序,这将导致merge sort进行最坏情况下的17次比较


[7,3,5,1,8,4,6,2]
,我解决了它,发生了16次比较,根据解决方案,是17次比较?如有任何解释,将不胜感激

需要4次比较才能创建4个大小为2的排序运行。需要2组3个比较来创建2个大小为4的排序运行。然后需要7次比较才能创建1次大小为8的排序运行。

我正确地得到了前2次(4次比较和6次比较),但我仍然不确定最后如何得到7次,最后得到了6次。介意再详细说明一下吗?我使用的是计数反转。最后一次通过合并两个大小为4的已排序运行,以创建一个大小为8的已排序运行。在最坏的情况下,除了刚才复制的最后一个剩余元素外,每个移动的元素都有一个比较,因此有7个比较。