Algorithm 这一问题的时间复杂性;“增量排序”;

Algorithm 这一问题的时间复杂性;“增量排序”;,algorithm,sorting,big-o,time-complexity,Algorithm,Sorting,Big O,Time Complexity,这使用了与merge sort相同的合并函数,但输入的拆分方式不同,因此列表以这种方式合并^ 在最坏的情况下,此算法的比较次数是多少? 我知道合并排序是(n logn-n+1),我假设这个排序比较慢,作为一个提示:你在别的地方见过这个算法吗?它的工作原理是从n个排序元素的列表开始,然后在末尾添加第n个元素,并将其向下交换到适当的位置 一旦您弄清楚了该算法是什么,您就应该能够非常轻松地获得最佳、最差和平均情况下的运行时 希望这有帮助 作为提示:您在其他地方见过这个算法吗?它的工作原理是从n个排序元

这使用了与merge sort相同的合并函数,但输入的拆分方式不同,因此列表以这种方式合并^

在最坏的情况下,此算法的比较次数是多少?
我知道合并排序是(n logn-n+1),我假设这个排序比较慢,作为一个提示:你在别的地方见过这个算法吗?它的工作原理是从n个排序元素的列表开始,然后在末尾添加第n个元素,并将其向下交换到适当的位置

一旦您弄清楚了该算法是什么,您就应该能够非常轻松地获得最佳、最差和平均情况下的运行时


希望这有帮助

作为提示:您在其他地方见过这个算法吗?它的工作原理是从n个排序元素的列表开始,然后在末尾添加第n个元素,并将其向下交换到适当的位置

一旦您弄清楚了该算法是什么,您就应该能够非常轻松地获得最佳、最差和平均情况下的运行时

希望这有帮助

这种排序是O(n^2)。对于添加的每个项目,比较现有列表中的每个项目

所以在这里你要做1+2+3+4+5+6+7=(n^2+n)/2比较

假设您使用的是标准合并

您也可以在适当的位置执行此操作,在这种情况下,它只是将内容插入到排序列表中。这也是O(n^2)。您将进行日志(n)比较以找到要插入项的位置,但随后必须向下移动项以留出空间。因此,插入每个项是n+log(n),使排序为O(n^2+n log n)。

此排序为O(n^2)。对于添加的每个项目,比较现有列表中的每个项目

所以在这里你要做1+2+3+4+5+6+7=(n^2+n)/2比较

假设您使用的是标准合并


您也可以在适当的位置执行此操作,在这种情况下,它只是将内容插入到排序列表中。这也是O(n^2)。您将进行日志(n)比较以找到要插入项的位置,但随后必须向下移动项以留出空间。因此,插入每个项目是n+log(n),使排序为O(n^2+n log n)。

它是否会将其与第(n/2)个元素(或n/2-1,如果列表为偶数)进行比较,并每次将列表减半?将其与列表中的每一项进行比较将非常有用inefficient@Foxic:您说过它使用与合并排序相同的合并功能。如果是这样,并且您是按升序(最坏的情况)添加内容,那么添加的每个新项目都将与现有列表中的每个项目进行比较。它不是将其与第(n/2)个元素(或n/2-1,如果列表为偶数)进行比较,并且每次将列表减半吗?将其与列表中的每一项进行比较将非常有用inefficient@Foxic:您说过它使用与合并排序相同的合并功能。如果是这样的话,并且您是按升序添加内容(最坏的情况),那么添加的每个新项目都将与现有列表中的每个项目进行比较。我无法计算它out@Foxic-考虑一下插入排序,我搞不懂out@Foxic-考虑一下插入排序。