算法与数据结构(入门版本)

总述

博主主要讲解以下几个方面的东西:

    计算机内有关数据的概念。

    算法相关内容。

    常用的数据结构。

一,一些基本概念。

数据结构:简单来说,是计算机组织数据和存储数据的方式。更进一步来说,是一组存在一种或多种特定关系的数据的组织方式和存储方式,以及定义在该组数据上的一组操作。(逻辑结构和物理结构以及基本运算).

说到这里不得不提一下计算机解决问题的步骤。

1,根据具体问题抽象出数学模型。(建模)

2,根据模型设计出算法。(算法设计)

3,根据算法设计程序,编程,执行,调试程序,直到解决问题。(编程,调试,运行)

算法与数据结构(入门版本)_第1张图片

一个著名公式:程序=算法+数据结构。

数据:计算机所存储,处理的对象。(数值,字符串,布尔类型,图像,声音等)

数据元素:数据的基本单位,在程序中作为一个整体而加以处理和考虑。简称元素,数据元素是运算的基本单位。

数据项:数据的最小标识单位,组成数据元素。在数据库中称为值域或者字段。

数据表
姓名 学号 性别

陈小小

007
伍大大 005

姓名,学号,性别为数据项,三者共同组成数据元素。

数据的逻辑结构:数据元素之间的逻辑关系。(ps图比较丑,见谅)常见的4种:

算法与数据结构(入门版本)_第2张图片

集合:无规律,2结点之间无邻接关系。

线性结构:一个节点相接一个节点,形成一个链。

树形结构:有层次和分支结构,上层节点和多个下层节点相连接,下层节点和一个上层节点相连接。

图形结构:任何2个点可以相链接。

数据的存储结构:数据的逻辑结构在计算机中的实现。(又称物理结构)

包括2部分:

存储数据元素。

数据元素之间的关联方式。以下几种:

顺序存储方式,链式存储方式,索引存储方式,散列存储方式。

顺序存储方式:把所有存储结点存储在连续的存储区里,用结点在存储区的相对位置表示数据元素的关联方式。

链式存储方式:每个存储结点包含一个数据元素和一个指针,指向与本结点相关的结点,用指针表示数据元素间的关联方式。

存储结构的描述:

机器级:内存地址。

语言级:类型说明,变量说明。

算法

算法评价:

正确性。(能否解决具体问题)

易读性。(是否便于理解,修改调试运行,又称可读性,一个良好的代码必须是可读性良好的)

健全性。(能否解决输出非法数据导致的问题)

时空性(算法的时间性能(效率)和空间性能(空间效率),时间性能包含算法的时间计算量,空间性能包含算法的空间存储量)

 如何计算算法的计算量?

 可以在算法中合理选择一种或几种操作作为“基本操作”,对于给定输入确定算法共执行了多少次基本操作,将基本操作作为算法的时间度量。O(xx)表示算法的计算量。(渐进表示法)

注意:渐进表示法不考虑具体运行时间,只给出算法在问题规模下的执行时间的上界。

时间复杂度的常见阶数:O(1),O(log2n),O(n),O(nc),O(cn)(c为大于1的正整数),

通常认为:时间复杂度为指数阶的是实际不可计算的,阶数低于平方阶是高效的。

时间复杂度大小:log2N

空间复杂度:算法所耗费的存储空间。

包括以下部分:

程序代码所占的存储空间。

输入数据所占的存储空间。

辅助变量所占的存储空间

分析空间辅助度时一般只分析辅助变量所占的空间。

未完待续。。。。。

 

你可能感兴趣的:(数据结构与算法)