Sorting 有人能帮我通过插入k个新元素对数组进行排序吗
在包含N个元素的排序数组中插入K个新元素的时间复杂度(如何操作)是多少。这可以在O(K Log K+N)中完成这取决于所使用的数据结构。您提到了“在数组中”,这使得它是O(k*n)O(k+n)。对于其他实现,它可以减少到O(k logn),这是为k个元素中的每一个查找插入位置的(最佳?)复杂性 但是,数组不允许插入。在位置i上插入新元素需要将从旧i开始的所有元素向后推一个空格。如果我接近尾端,这没关系,但接近开始时,你会将几乎所有元素移回,因此最坏的情况是每次插入O(n)。最重要的是,数组的空间有限。如果您的阵列不适合n+k元素,则必须分配新内存并从旧内存复制到新内存 [编辑]Sorting 有人能帮我通过插入k个新元素对数组进行排序吗,sorting,data-structures,Sorting,Data Structures,在包含N个元素的排序数组中插入K个新元素的时间复杂度(如何操作)是多少。这可以在O(K Log K+N)中完成这取决于所使用的数据结构。您提到了“在数组中”,这使得它是O(k*n)O(k+n)。对于其他实现,它可以减少到O(k logn),这是为k个元素中的每一个查找插入位置的(最佳?)复杂性 但是,数组不允许插入。在位置i上插入新元素需要将从旧i开始的所有元素向后推一个空格。如果我接近尾端,这没关系,但接近开始时,你会将几乎所有元素移回,因此最坏的情况是每次插入O(n)。最重要的是,数组的空间
正如Sashaalm所提到的,如果一开始就知道所有k个新元素,那么可以先对新元素数组(O(k log k))进行排序,然后将它们与旧数组(O(n+k))合并,这样做会更好。假设k我有一个如下的新答案
-“有人能帮我吗”是最糟糕的标题。这个网站真的充斥着质量低劣的问题。我不知道为什么会有这样的问题。检查好的答案。在提问之前,您是否进行了简单的搜索?@user可能重复,请重新阅读您的上一条评论。那不是英语。“我不知道为什么-我们的演员阵容在那里。检查是否有好的答案。”-我不太明白你想说什么。如果能把真正的答案归功于萨索尔姆就好了。@Gaminic会的。他在我的垃圾答案中评论了解决方案,我从那以后就一直这样回答deleted@schmop请不要相信我。我认为OP的问题根本不应该被回答,应该被否决并关闭。