数据结构与算法知识小结1
学习编程的人应该都知道数据结构与算法这一门课程,因为它是编程者的一门必修课,可以说是专业核心课程。为什么说它如此重要呢?因为著名科学家尼古拉斯·沃思提出了编程=数据结构+算法。下面我来分享一下我对学习了该课程的理解及小结。
数据结构与算法这门课主要分两大部分,一是数据结构;二是算法。在数据结构中我们需要知道它的意义和基本概念。数据结构是在针对问题编写出高效率的处理程序,来提高程序执行效率的背景下形成的一门课程,目的是为了让编程者编写出更高效的程序。
在数据结构中主要研究的是逻辑结构和线性结构。逻辑结构上会细分为线性结构、树结构和图结构。简单来说也可以分为线性结构和非线性结构。
1、 线性结构(一对一):结构中的数据元素之间存在着一对一的线性关系。除第一个和最后一个数据元素外,每一个数据元素只有一个前驱和一个后继数据元素。
2、 树结构(一对多):结构中的数据元素之间存在着一对多的层次关系。除根节点外,每个数据元素只有一个前驱数据元素,可有0或多个后继数据元素。
3、 图结构(多对多):结构中的数据元素之间存在着多对多的任意关系。每个数据元素可有0或多个前驱数据元素和后继数据元素。

数据结构与算法知识小结1

算法是解决问题的方法,是程序的精髓,程序设计的实质就是构造解决问题的算法,算法的设计取决于数据的逻辑结构,它的实现取决于数据的物理存储结构。
算法:对特定的问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。它还有5个重要的特性:有穷性、确定性、可行性、输入、输出。
1、 有穷性:一个算法应包含有限个操作步骤。即一个算法在执行若干个步骤之后应该能够结束,而且每一步都在有限时间内完成。
2、 确定性:算法中的每一步都必须有确切的含义,不能产生二义性。
3、 可行性:算法中的每一个步骤都应该是能有效地执行,并得到确定的结果。
4、 输入:所谓输入,是指在算法执行时,从外界取得必要的数据。计算机运行程序的目的是为了进行数据处理,在大多数情况下,这些数据需要通过输入得到。有些情况下,数据已经包含在算法中,算法执行时不需要任何数据,所以一个算法可以有零个或多个输入。
5、 输出:一个算法有一个或多个输出,这是算法进行数据处理后的结果。没有输出的算法是毫无意义的。

一个好的算法它除了有5个重要的特性外,还有4个设计要求:正确性、可读性、健壮性、效率与低存储量需求。
1、 正确性:对任意一个合法的输入经过有限执行之后算法应给出正确的结果。
正确性的含义是算法对于一切合法的输入数据都能够得出满足要求的结果,事实上要验证算法的正确性是极为困难的,因为通常情况下合法的输入数据量太大,用穷举法逐一验证是不现实的。所谓的算法正确性是指算法达到了测试要求。
2、 可读性:可供人们阅读的容易程度
算法的可读性是指人对算法阅读理解的难易程度,可读性高的算法便于交流,有利于算法的调试和修改。通常增加算法的可读性是在书写算法时采用按缩进格式书写、分模块书写等方法可增加算法的可读性。
3、 健壮性:一个算法对不合理数据输入的反应能力和处理能力,也可称容错性。
对于非法的输入数据,算法能给出相应的响应,而不是产生不可预料的后果。
4、 效率与低存储量需求:效率指的是算法的执行时间。对于解决同一问题的多个算法,执行时间短的算法效率高。存储量需求指算法执行过程中所需要的最大存储空间。存储量需求越小的算法效率越高。

以上是我的理解和小结,不足之处请指教,下面的图是帮助我理解的,来自博客—龙跃十二。

数据结构与算法知识小结1

相关文章: