数组和链表简单对比
来源:互联网 发布:it人才缺口 编辑:程序博客网 时间:2024/06/07 23:58
数组:相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标
场景:倘若数组中第一个元素在地址A,则数组第二个元素就在地址A+1
数组的特性:
1.数组必须先定义固定长度,不能适应数据动态增减
2.当数据增加时,可能超出原先定义的元素个数,当数据减少时,造成内存浪费
3.数组查询比较方便,根据下标就可以直接找到元素,时间复杂度O(1);增加和删除比较复杂,需要移动操作数所在位置后的所有数据,时间复杂度为O(N)
链表:是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
场景:链表每个节点没有相对固定的位置关系。某个节点在地址A,其后的节点不一定在A+1,而在内存的其他空闲区域,呈现一种随机的状态
链表的特性:
1.链表动态进行存储分配,可适应数据动态增减
2.插入、删除数据比较方便,时间复杂度O(1);查询必须从头开始找起,十分麻烦,时间复杂度O(N)
常见的链表:
1.单链表:通常链表每一个元素都要保存一个指向下一个元素的指针
2.双链表:每个元素既要保存到下一个元素的指针,还要保存一个上一个元素的指针
3.循环链表:在最后一个元素中下一个元素指针指向首元素
链表和数组都是在堆里分配内存
应用:
如果需要快速访问数据,很少或不插入和删除元素,就应该用数组;相反, 如果需要经常插入和删除元素就需要用链表数据结构了
0 0
- 数组和链表简单对比
- 指针和数组的对比
- 指针和数组的对比
- 指针和数组的对比
- 链表对比数组之问答
- 数组与链表的对比
- ASI和AFN简单对比
- Vue 和 React 简单对比
- Java和JavaScript简单对比
- Nginx 和 Appache 简单对比
- 指针数组与数组指针对比及简单测试
- 利用数组和链表实现简单的哈希表
- C++和Java数组初始化的对比
- 指针和数组的效率对比
- 内存分配 指针和数组对比
- 内存分配 指针和数组对比
- 数组方法和字符串方法对比
- JavaScript和php数组部分方法对比
- Compile-time Functions
- 自己设计了一个wipebox 幻灯片
- Linux 杂记
- ThinkPHP里的MVC
- 算法与心法:需要二维数组吗?
- 数组和链表简单对比
- 第八周项目32-对程序运行结果的理解
- [算法题] 最接近零的子数组和 Subarray Sum Closest
- WPF listbox控件用法介绍
- python爬虫——基于selenium用火狐模拟登陆爬搜索关键词的微博
- linux下的apache的安装
- 回溯算法之装载问题
- 16、Map-Hashmap
- java基础