数据结构和算法

来源:互联网 发布:开淘宝店投资多少钱 编辑:程序博客网 时间:2024/05/21 22:39

什么是数据结构?

数据结构分为数据和结构。数字、字符、图形、声音等都是数据。结构分逻辑结构和存储结构。逻辑结构就是数据间的抽象化关系。存储结构就是数据在计算机存储器(内存、磁盘)的存储方式。数据结构研究的就是数据如何在计算机内存储的问题。数据结构包括数组、栈、二叉树、哈希表等等。

什么是算法?

算法就是计算机内对给定问题的处理过程,说白了就是对数据结构中的数据进行各种处理,比如对数据排序、查找等。

数据结构和算法的关系?

计算机处理数据的过程:数据的输入—->计算机的处理—>数据输出
对于原始数据如何进行组织,如何在计算机内存储,便于节省空间和计算机处理;如何选择合适的算法提高解决问题的效率和可靠性,都是很重要的,不能孤立讨论。
算法只有在合适的数据结构上才能发挥作用,数据结构的不同,会影响算法的选择和效率。
有科学家这样总结:算法+数据结构=程序

数据结构和算法有什么用?

前面概念有一定了解后,了解一下应用场景。
现实数据存储:
将现实世界的计算机外部的物理实体数据存储在计算机里。比如一条人事档案记录一个真实人的信息。
程序员的工具:
用链表、栈、队列等结构作为工具来简化另一些操作。
对现实世界进行建模:
用数据结构对现实世界进行构造模型。像图,用它表示城市之间的航线、电路的连接等。
大致了解数据结构的特性:

数据结构 优点 缺点 数组 插入快,知道下标可快速存取 查找慢,删除慢,大小固定 有序数组 比无序数组查找快 插入、删除慢,大小固定 栈 后进先出的方式存取 存取其他项很慢  队列 先进先出的方式存取 存取其他项很慢 链表 插入、删除快 查找慢 二叉树 插入、删除、查找都快(如果树保持平衡) 删除算法复杂 红-黑树 插入、删除、查找都快(树总是平衡的) 算法复杂 2-3-4树 插入、删除、查找都快(树总是平衡的)类似的树对磁盘存储有用 算法复杂 哈希表 如果关键字已知,存取极快,插入快 删除慢,关键字未知,存储慢,对磁盘空间利用不充分 堆 插入、删除快,对最大数据项的存取很快 对其他数据项存取慢 图 对现实世界建模 有些算法慢且复杂

以上除数组外,其他称为抽象数据结构(ADT)。

1 1
原创粉丝点击