数据结构与算法的理解
2016-01-26 10:54
423 查看
数据结构
数据结构研究的是:如何将现实生活中,大量而复杂的问题,以特定的数据类型和特定的存储结构保存到内存中,以及对数据进行的一些相关操作。
通俗解释:
因为现实生活中,有大量复杂的问题,这些问题当中,有线性的问题(比如保存一个班级的所有学生信息到计算机中),也有非线性的问题(比如图书馆的图书管理系统),这些问题不一样,比较复杂。
纵使问题很复杂,但是计算机的物理存储结构就只有一种—线性存储。
数据结构研究的就是:如何将这复杂的问题,用某种特定的方法,合适的方法,将这些复杂的问题存储在单纯的计算机中。使其既能不太浪费计算机存储空间,又能恰当表示问题,以及对这些问题进行高效的操作(比如增删改等等)。
下面用一幅图来表示:
如上图:“某种方法”就是数据结构要研究的内容。
算法
数据结构解决了如何存的问题,即解决了如何将现实中的问题在计算机中表示的问题。存储了以后要怎么办呢?
那么就是面对实际问题进行的一些操作了。
比如:将图书馆中所有的图书都合理高效的保存到了计算机中。接下来,我就要对这些图书进行一些操作了:比如查找某一类图书,比如删除某一类图书。
如何进行高效稳定的查询,高效稳定的删除,以及高效稳定的其他操作,就是算法要要研究的内容。
比如:现在查询某一类图书的时间是10s,我如何将查询的时间优化到1s?
等等诸如此类的问题,就是算法要研究的内容。
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#数据结构之顺序表(SeqList)实例详解
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 数据结构之Treap详解
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解