Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/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_Search_Sorting_Complexity Theory - Fatal编程技术网

Algorithm 包含重复值的已排序和未排序数组中的搜索和插入操作的时间复杂性

Algorithm 包含重复值的已排序和未排序数组中的搜索和插入操作的时间复杂性,algorithm,search,sorting,complexity-theory,Algorithm,Search,Sorting,Complexity Theory,1-)对于排序数组,我使用了二进制搜索。 我们知道排序数组中搜索操作的最坏情况复杂度是O(lgn),如果我们使用二进制搜索,其中N是数组中的项数。 使用二进制搜索时,数组中包含重复值的搜索操作的最坏情况复杂度是多少?? 它会是相同的O(lgn)吗??如果我错了,请纠正我 另外,在使用二进制搜索的排序数组中插入操作的最坏情况是什么?? 我猜是O(N)。。。。是这样吗 2-)对于未排序的数组,我使用了线性搜索。 现在我们有了一个未排序的数组,它也接受重复的元素/值。 搜索和插入操作的最坏情况复杂度是

1-)对于排序数组,我使用了二进制搜索。 我们知道排序数组中搜索操作的最坏情况复杂度是O(lgn),如果我们使用二进制搜索,其中N是数组中的项数。 使用二进制搜索时,数组中包含重复值的搜索操作的最坏情况复杂度是多少?? 它会是相同的O(lgn)吗??如果我错了,请纠正我

另外,在使用二进制搜索的排序数组中插入操作的最坏情况是什么?? 我猜是O(N)。。。。是这样吗

2-)对于未排序的数组,我使用了线性搜索。 现在我们有了一个未排序的数组,它也接受重复的元素/值。 搜索和插入操作的最坏情况复杂度是什么。 我认为我们可以使用线性搜索,这将给我们O(N)最坏情况下的搜索时间 和删除操作。 对于未排序的数组,我们能做得更好吗?如果我们接受数组中的重复项,复杂性会发生变化吗

  • 最好的例子是无趣的。(想想原因。)最坏的情况是O(N),除了插入。一次操作即可快速插入未排序的数组。(同样,如果你看不到它,请考虑一下。)


  • 一般来说,除了极端的病理分布外,复制品没有什么区别。

    在这方面有些帮助,但不是整个解决方案

  • 二进制搜索的最佳情况是搜索的项目是第一个枢轴元素。最糟糕的情况是,必须深入到两个相邻的元素,但仍然找不到要查找的内容。如果数据中存在重复项,是否会发生变化?将数据插入排序数组包括以更高的排序顺序“向右一步”洗牌所有数据。最坏的情况是插入排序顺序低于任何现有项的项
  • 搜索未排序的数组别无选择,只能按照您自己的建议进行线性搜索。如果您不关心排序顺序,有一种更快、更简单的方法来执行插入。删除可以看作是先搜索,然后删除

  • 我们可以更好地从无序数组中删除!在这种情况下,顺序无关紧要,我们可以将要删除的元素与最后一个元素交换,这样可以避免数组中元素的不必要移动。因此在O(1)时间内删除。

    @Eli看看这里的人有多好!2个答案@iecut要学会接受答案,否则你根本就不读吗?@Eli。。这是我所有的努力,谢谢你添加家庭作业标签!我只是知道一个人必须接受答案,现在我会接受我觉得有用的答案。我很高兴你在学习。好luck@Anders亚伯:谢谢你的回复。对于第1部分:在最坏情况下的搜索和插入操作中,您没有解决重复问题。对于搜索,我们可以先使用二进制搜索来查找键值,然后使用线性搜索来查找与二进制搜索找到的键值相同的所有重复值吗??这种情况下的复杂性为O(N lg N)。这是正确的方法吗?不,我没有给你完整的答案,只是关于如何解决这个问题的一些提示:-)@Rob:在第1部分:如果数组中有重复的元素,搜索的复杂性会相同吗?我得到了O(N lgN)…logN来查找数组中的第一个值,N来查找我们正在搜索的所有其他重复值。@iecut:在第1部分中,数组被排序。因此,所有副本将位于同一位置。搜索时,成本仅为查找第一个重复项,然后向前迭代所有重复项(将在一行中)的时间。所以O(lg(n)+k),其中k是一个条目的最大重复数。典型的情况是k@Rob:那么从第1部分的解释来看,是否可以假设在第2部分中使用重复值的未排序数组进行搜索只需O(N)个最坏情况时间??我的意思是,如果我们在一个未排序的数组中查找一个项目,我们能在O(N)时间内完成吗,那么在找到第一个值之后,类似/重复的项目呢??请详细说明,因为我对这个复杂问题还不熟悉……谢谢@伊科特:是的。如果你在搜索物品,你可能要做的最多的工作就是浏览你拥有的每一件物品。因此O(N)。