首页 > 试题广场 >

如何权衡是使用无序的数组还是有序的数组?

[问答题]
如何权衡是使用无序的数组还是有序的数组?
复制粘贴的真是够了
发表于 2016-08-20 16:58:18 回复(1)
个人理解:数组中存储的数据是有序的还是无序的,以此来区分是有序数组,还是无序数组
       
            有序数组
                    查找,可以使用二分查找, 时间复杂度 O(long N)
                    插入,  需要比较,移动数据,找到合适的位置插入数据 O(N)
           
            无序数组:
                    查找:需要循环遍历  O(N)
                    插入:放到末尾就好 O(1)
                          
发表于 2019-03-13 20:46:31 回复(1)
有序数组查询容易,插入难。无序数组插入容易,查询难
发表于 2017-10-01 20:29:22 回复(0)

查询 插入
有序数组 O(logN) O(logN)
无序数组 O(N) O(1)

发表于 2018-09-11 09:57:03 回复(3)
查找的多就使用有序数组(有点像链表了),插入得多就使用无序数组
发表于 2017-04-11 13:47:53 回复(0)
查找复杂度:有序数组O(log n) ,无序数组 O(n)
插入复杂度:有序数组O(n) ,无序数组 O(1)
发表于 2017-03-27 14:26:00 回复(0)
查找:有序O(log n) 优于 无序O(n)
插入:无序O(n) 优于 有序O(1)

发表于 2018-05-17 21:32:55 回复(1)
如何权衡要用无序还是有序数组, 有序数组最大的好处在于查找的时间复杂度是O(log n),而无序数组是O(n)。有序数组的缺点是插入操作的时间复杂度是O(n),因为值大的元素需要往后移动来给新元素腾位置。相反,无序数组的插入时间复杂度是常量O(1)。 也就是说有序数组要保证插入后还是有序,所以要先找到插入的地方再进行插入,所以是O(n),然后无序的是O(1),有序的查询是O(logn),而无序的是O(n).(仅做记忆)
发表于 2016-09-04 11:29:50 回复(3)
无序数组查询时间为O(n) 插入O(1) 有序数组查询O(logn)插入时要先查询插入点所以为O(logn) 考虑利弊来采用哪一个
发表于 2021-04-04 15:46:08 回复(0)
查找的多就使用有序数组,插入得多就使用无序数组
发表于 2020-08-15 13:48:03 回复(0)
感觉有序数组不如用“红黑树”之类的,同样都是查询O (logn),但是插入一个O(n),一个O(logn);
ArrayList大概可以算无序数组吧,插入直接插后面就行O(1),查询O(n)从头遍历直到找到目标。
发表于 2020-07-19 16:04:34 回复(1)
<p>看时间复杂度,有序数组查询效率高,无需数组linkedlist插入删除效率高</p>
发表于 2020-05-11 08:47:35 回复(0)

对于有限的数据是使用有序数组,面对庞大的数据是使用无序数组.

进行数据的查询时使用有序数组,对数据进行插入删除修改时使用无序数组

编辑于 2020-03-20 21:33:46 回复(0)

有序数组方便查找,无序数组方便操作。

发表于 2020-03-02 21:32:15 回复(0)
有序与无序不同在于查找和添加的区别, 有序:查找快,时间复杂度 O(log N) ,添加慢,时间复杂度 O( N) 无序相反
编辑于 2019-11-20 19:56:02 回复(0)

查找多就用有序,插入多就用无序

发表于 2019-10-23 12:55:04 回复(0)

这个要看你使用数组做什么,

1.如果查询频率》插入频率,则使用有序数组(二分查找o(logn))大于o(n)

2.如果插入频率》查询频率,则使用无序数组

o(1)大于o(n)

发表于 2019-06-06 00:08:34 回复(0)
查找多用有序,插入多用无序
发表于 2019-05-20 11:40:47 回复(0)

无序数组适合插入

有序数组适合查询


发表于 2019-05-17 13:48:07 回复(0)
使用有序数组还不如用ArrayList,查找的复杂度为O(1),插入为O(n),查找的时候要由于数组Array;
只是ArrayList只能存储对象类型


发表于 2019-05-10 23:17:39 回复(0)