Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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/2/ruby-on-rails/58.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
Java 关于时间复杂度O(1),O(n),O(logn),O(nlogn)的问题_Java_Arraylist_Time Complexity - Fatal编程技术网

Java 关于时间复杂度O(1),O(n),O(logn),O(nlogn)的问题

Java 关于时间复杂度O(1),O(n),O(logn),O(nlogn)的问题,java,arraylist,time-complexity,Java,Arraylist,Time Complexity,我目前正在研究arraylist的时间复杂性,特别是关于访问和搜索。我不太清楚哪一个是哪一个 所以我知道当索引为O1时,访问的时间复杂度。 但是2和3是正确的吗 当arraylist已排序且您不知道索引处于打开状态时,在arraylist上搜索 当您需要从未排序的arraylist中查找数据而不知道其索引处于打开状态时的时间复杂性 2和3的答案应该相同吗?或者已排序/未排序的arraylist会改变时间复杂度?在对arraylist进行线性搜索时,您正在查找某些元素。因为您不知道数据的索引是什么

我目前正在研究arraylist的时间复杂性,特别是关于访问和搜索。我不太清楚哪一个是哪一个

所以我知道当索引为O1时,访问的时间复杂度。 但是2和3是正确的吗

当arraylist已排序且您不知道索引处于打开状态时,在arraylist上搜索

当您需要从未排序的arraylist中查找数据而不知道其索引处于打开状态时的时间复杂性


2和3的答案应该相同吗?或者已排序/未排序的arraylist会改变时间复杂度?

在对arraylist进行线性搜索时,您正在查找某些元素。因为您不知道数据的索引是什么,所以必须遍历每个元素,直到找到要查找的项

在最坏的情况下,您必须一直走到最后一个元素。大Oh作为算法的上限。在最坏的情况下,我们必须遍历所有n个元素,因此算法是打开的


如果对arraylist进行了排序,则可以使用二进制搜索,即Olog n

当通过arraylist进行线性搜索时,您正在查找某些元素。因为您不知道数据的索引是什么,所以必须遍历每个元素,直到找到要查找的项

在最坏的情况下,您必须一直走到最后一个元素。大Oh作为算法的上限。在最坏的情况下,我们必须遍历所有n个元素,因此算法是打开的


如果对arraylist进行了排序,则可以对2使用二进制搜索,这取决于搜索方式。如果执行顺序搜索(例如使用),则无论数据是否排序,性能都处于启用状态

可以使用二进制搜索算法在OLOGN中搜索已排序的列表或数组

可以使用在上执行二进制搜索。正如javadoc所说:

该方法在logn时间内运行,用于提供接近恒定时间位置访问的随机访问列表。如果指定的列表未实现接口且较大,则此方法将执行基于迭代器的二进制搜索,该搜索将执行链接遍历和Olog n元素比较


对数组进行二进制搜索可以使用。

对于2,这取决于搜索的方式。如果执行顺序搜索(例如使用),则无论数据是否排序,性能都处于启用状态

可以使用二进制搜索算法在OLOGN中搜索已排序的列表或数组

可以使用在上执行二进制搜索。正如javadoc所说:

该方法在logn时间内运行,用于提供接近恒定时间位置访问的随机访问列表。如果指定的列表未实现接口且较大,则此方法将执行基于迭代器的二进制搜索,该搜索将执行链接遍历和Olog n元素比较


对数组进行二进制搜索可以使用。

2和3听起来像是同一件事:在未排序的数组列表中搜索数据。很抱歉,这是一个输入错误。因此,2应该是从排序的arraylistindex unknown中搜索,3应该是从未排序的arraylistindex unknown2和3中搜索,听起来好像它们是一样的:在未排序的arraylist中搜索数据。很抱歉,这是一个输入错误。所以2应该是从排序的ArrayListinex未知中搜索,3应该是从未排序的ArrayListinex未知中搜索谢谢你的快速回复!我得到排序的arraylist和二进制搜索的时间复杂度是Olon n。但是如果您只是从排序的arraylist中进行搜索而不是二进制搜索,那么它是否应该打开?是的,因为您可以搜索最后一个元素,所以它仍然会打开?非常感谢您的快速回复!我得到排序的arraylist和二进制搜索的时间复杂度是Olon n。但是,如果您只是从排序的arraylist中进行搜索而不是二进制搜索,那么它是否应该启用?是的,因为您仍然可以搜索最后一个元素