热门问题
时间线
聊天
视角
有序数组
来自维基百科,自由的百科全书
Remove ads
有序数组是内容依一定顺序排列的数组,是数据结构的一种。其顺序可能是依字母顺序、数字顺序或是其他顺序,在存储器中会存放在链接位置。在计算机科学中常用有序数组来实现查找表,其中有许多相同资料类型的资料。一般数组可以透过排序变成有序数组,常用在以一定方式组织资料,并且经常要查询的场合。
此条目没有列出任何参考或来源。 (2025年8月5日) |
简介
有序数组是空间非常节省的数据结构,对于顺序存储的资料,访问局部性很好。
有序数组里的元素可以用二分查找法来查询,时间复杂度O(log n),因此有序数组适用于要快速查找资料的应合,例如集合(set)或多重集(multiset)。其查询的时间复杂度和平衡树相同。
有些数据结构中是用数组实现。此时,可以用相同的排序方程用某键值,针对资料进行排序,例如依姓名或学号来排序学生资料等。
若是使用有序的动态数组,就可以插入元素或删除元素。有序数组插入资料或删除资料的时间复杂度是O(n),因为需要移动所有在该元素之后的资料。而平衡树插入资料和删除资料的时间复杂度是O(log n)。若其要插入或删除的元素是在最后一个,有序数组依平摊分析下的复杂度是O(1),而平衡树仍是O(log n)。
有序数组中的资料可以随机存取,时间复杂度是O(1),像其他较复杂的数据结构,访问的时间复杂度是O(log n)或 O(n)。
Remove ads
历史
约翰·冯·诺伊曼在1945年写了第一个数组排序程序(使用归并排序),当时第一个可以存储程序的电脑(EDVAC)仍在构建中[1][2]。
相关条目
参考资料
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads