我从事计算机行业很多年,当初没有把数据结构这门课程看的太重,以为编程就是写代码。把功能实现了就可以了,对于数据的组织,存储方式并不在意。这样稀里糊涂的编了很多年,虽然系统开发的还算可以,能满足用户的需求。但随之问题也就来了,用户总会说系统有些慢,那时的解决方法很暴力。头疼医头,脚疼医脚。虽然有些效果,但是不久系统又有了,新的问题,如数据丢失了完整性。诸如此类的问题,刚刚步入程序开发的同学们肯定会遇到很多这样的问题。
那么这些看似很简单的问题,到底为什么就不能完美的解决呢。如果想完美的解决就要有非常强大的理论基础做为支撑,那么我们就先从数据结构开始这漫漫旅程吧!
开篇
"数据结构"是计算机程序设计的重要理论基础,它不仅是计算机科学的核心课程,而且也成为其他工程专业的热门课程。
什么是数据结构
用计算机解决一个具体问题时,大致需要经过下列几个步骤:首选要从具体问题抽象出一个适当的数学模型,然后设计一个解决此数学模型的算法,最后编程程序、进行测试、调整直到有最终解答。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。
解决问题的方式可以概况为两大类:数值方式和非数值计算
数值方式
如:求解梁架结构中应力的数学模型为线性方程组;预测人口增长情况的数学模型为微分方程。
等差数列求和:
例如:1,3,5,7,9……2n-1。通项公式为:an=a1+(n-1)*d。首项a1=1,公差d=2。前n项和公式为:Sn=a1*n+[n*(n-1)*d]/2或Sn=[n*(a1+an)]/2。
非数值方式
现实生活中很多问题都是这样的问题,我们现在很多人都用手机了,比如在手机中查找联系人,你只知道人名不知道电话,那么你在查询框中输入要查找的人名,就会搜索到该人的联系电话。
张三 | 13900000000 |
李四 | 13900000001 |
王五 | 13900000002 |
赵六 | 13900000003 |
马七 | 13900000004 |
牛八 | 13900000005 |
计算机的主要操作便是按照某个特定要求(联系人名)对电话本进行查询。计算机处理的对象之间存在着一种最简单的线性关系,这类数学模型可称谓线性的数据结构。
今天有点困先写到这里吧!