目录
一、基本概念
向量(vector)就是线性数组的一种抽象与泛化,它也是由具有线性次序的一组元素构成的集合V = { v0, v1, …, vn-1 },其中的元素分别由秩相互区分。
-
各元素的秩(rank)互异,且均为[0, n)内的整数。(类似数组的下标)
-
向量的各元素可以为不同类型,也可通过泛型指定某一特定的类型。
二、接口
1、向量的操作接口
- 列表
| 操作接口 | 功能 | 适用对象 |
|---|---|---|
| size() | 报告向量当前的规模(元素总数) | 向量 |
| get( r) | 获取秩为r的元素 | 向量 |
| put(r, e) | 用e替换秩为r元素的值 | 向量 |
| insert(r, e) | e作为秩为r的元素插入,原后继元素依次后移 | 向量 |
| remove( r) | 删除秩为r的元素,返回该元素中原存放的对象 | 向量 |
| disordered() | 判断所有元素是否已按费降序排列 | 向量 |
| sort() | 调整各元素的位置,使之按非降序排列 | 向量 |
| find(e) | 查找等于e且秩最大的元素 | 向量 |
| search(e) | 查找目标元素e,返回不大于e且秩最大的元素 | 有序向量 |
| deduplicate() | 剔除重复元素 | 向量 |
| uniquify() | 剔除重复元素 | 有序向量 |
| traverse() | 遍历向量并统一处理所有元素,处理方法由函数对象指定 | 向量 |
-
具体实例
#

本文详细介绍了向量这一数据结构,包括基本概念、接口设计、空间管理策略如静态与动态,以及有序向量的二分查找和Fibonacci查找等高效搜索算法。此外,还探讨了向量排序的起泡排序和归并排序,以及位图数据结构及其在小集合和大数据场景的应用。
最低0.47元/天 解锁文章
954

被折叠的 条评论
为什么被折叠?



