一、数据结构和算法
1.数据结构:是数据的组织和存储方式,决定了数据的逻辑结构和物理结构
良好的数据结构可以(优点):
- 提高数据的存储效率
- 提高数据的查询效率
- 提高数据的修改效率
- 降低程序的复杂度
- 降低程序的错误率
2.算法:解决问题的步骤和方法,决定了程序的执行效率和正确性
算法具有的特点:
- 高效性
- 正确性
- 简洁性
- 可维护性
3.数据结构和算法的关系
(1)二者相辅相成,缺一不可,面对不同的问题选择相应的数据结构和算法。
(2)数据结构就像是一个容器,算法是对容器里的内容进行增删改查的过程。
(3)例如:在处理排序问题时,可以选择冒泡排序、插入排序、选择排序和快速排序等不同的算法;同时需要选择合适的数据结构来存储待排序的数据,可以选择顺序表和链表的方式。
二、逻辑结构与存储结构
1.逻辑结构定义
是数据元素之间的逻辑关系,即数据在用户面前呈现的方式,而与数据在计算机内部的存储关系无关,包含以下四种基本结构:
- 集合结构:数据元素之间没有固定的顺序,只是属于同一个集合。
- 线性结构:数据元素之间存在一对一的线性关系。
- 树状结构:数据元素之间,存在一对多的层次关系。
- 图形结构:数据元素之间存在多对多的任意关系。
2.存储结构定义
是数据在计算机中的存储形式,分为两种形式:
- 顺序存储:数据元素按照一定的顺序,存储在连续的内存空间中,例如C/C++中的数组。
- 链式存储:把数据元素存储在任意的内存中,无所谓连续不连续,然后通过链接的关系,把两个元素联系在一起,例如链表。