数据结构与算法 ----- 定义的理解

  数据结构的定义: 我们怎么把现实中大量而复杂的问题,进行抽象建模(model),以特定的数据类型和特定的存储结构把它们存储到计算机中,从而可以实现某些操作,比如查找和排序,实现这些操作的步骤就称之为算法,算法就是对特定的数据类型进行某些操作的过程,从而达到某种目的。

  比如我们要对整个班级内的所有学生成绩进行排序,这是一个很现实的问题,怎样才能用计算机进行实现。首先我们要进行抽象建模,要记录每一个学生的姓名和成绩,那就要用对象,这个对象定义两个属性name, score, 然后是所有的学生,我们可以用数组进行存储,把所有的对象都放到一个数组中。存储完成后,我们就要进行排序,如何对数组的对象进行排序的问题,这就是算法的实现问题。但是如果学生的数据量特别大的话,如高考中,山东和河南的考生数量,那用数组进行存储可能就会有问题,因为数组是一片连续的内存空间, 有可能内存空间不足,那就无法进行存储了,这时可以考虑使用链表,因为链表中的元素是用指针进行链接的,只要有空间进行分配就可以了,空间不需要连续,可以分散在内存中的各个角落。

  还有一个现实中问题,就是我们经常使用的地图,它是怎么知道这两个点之间距离是最短的,它是怎么规划路线的? 首先要进行抽象,现实中的地点比如公交站点,它是怎么存放到地图中的?用什么样的数据结构存储到计算机中?单个点怎么存储,所有的点又怎么存储? 这就要用到数据结构中的图了。然后计算两个点之间的距离了,这又是具体的算法了。

  从上面的例子,可以看出,数据结构主要研究的是数据存储,现实中大量而复杂的数据,怎么存放到计算机中,单个数据怎么存储?所有的单个数据又怎么整合到一起? 在数据存储的过程中,有可能有多种实现方式,我们还要决定使有哪一种数据结构,使存储更为有效。

  数据存储完成后,还要进行操作,如果只把数据存储起来,不进行操作,那也没有什么作用,因为根本得不到任何有效信息。对数据的操作就是算法,我们怎么才能从所有的数据中找出它的最小值,计算出它的平均数等等。

posted @ 2018-07-28 11:05  SamWeb  阅读(1316)  评论(0编辑  收藏  举报