基础数据结构
-
数组和链表的区别算法
- 数据中数组的内存是顺序存储的,而链表是随机存取的。
- 数组随机访问效率很高,但插入删除操做的效率比较低。
- 链表在插入删除操做上相对数组有很高的效率,而若是访问链表中的某个元素,那就要从表头逐个遍历,直到找到所须要的元素为止,因此链表的随机访问效率比数组低。
- 链表不存在越界问题,数组有越界问题。
- 数组节省空间可是长度固定。链表虽然变长,可是占了更多的存储空间。
- 静态)数组从栈中分配内存空间,对于程序员方便快速,可是自由度小。链表从堆中分配空间,自由度大,但申请管理比较麻烦。
-
数据结构上的堆和栈有什么区别、底层结构是什么数组
- 1.栈内存存储的是局部变量,基本类型的变量表示的是数据自己;而堆内存存储的是实体,每一个实体对象都有地址值和默认初始化值;
- 2.栈内存的读取和更新速度要快于堆内存,由于局部变量的生命周期很短;
- 3.栈内存使用一级缓存,存放的变量生命周期一旦结束就会被释放;而堆内存使用二级缓存,存放的实体会被垃圾回收机制不定时的回收。
树
索引提到了B树
树是用什么存储的,可不能够用数组存储
红黑树
最大的K个数用什么排序算法,复杂度、一样是NlogN, 快排和堆排序有什么区别。缓存
END