以图明志

数据结构

第16话:算法的空间复杂度

时间与空间复杂度相互影响
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。

数据结构

第15话:算法的最坏情况与平均情况

复杂度就要看最坏情况
算法(Algorithms)的复杂度(Complexity)是指运行一个算法所需消耗的资源(时间或者空间)。同一个算法处理不同的输入数据所消耗的资源也可能不同,所以分析一个算法的复杂度时,主要有三种情况可以考虑,最差情况(Worst Case)下的,平均情况(Average Case)的, 最好情况(Best Case)下的。

数据结构

第14话:如何计算算法的时间复杂度

大O记法的实践
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n}=0(f(n))。它表示随问题规模n的增大,算法执行时间的埔长率和 f(n)的埔长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f( n)是问题规横n的某个函数。

数据结构

第13话:算法的性能分析

如何判断一个算法的效率
我们不关心编写程序所用的程序设计语言是什么,也不关心这些程序将跑在什么样的计算机中,我们只关心它所实现的算法。这样,不计那些循环索引的递增和循环终止条件、变量声明、打印结果等操作,最终,在分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或一系列步骤。

数据结构

第12话:什么样的算法才是好算法

算法的设计要求
很多问题来说,算法不是唯一的。同一个问题,可以有多种解决问题的算法。正因为算法不唯一,相对好的算法还是存在的。什么才叫好的算法呢?算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、 能正确反映问题的需求、能够得到问题的正确答案。

数据结构

第11话:算法的五个基本特征

算法的特点
算法具有五个基本特性:输入、输出、有穷性、确定性和可行性。一个算法应包含有限的操作步骤,而不能是无限的。事实上“又穷性”往往指“在合理的范围之内”。如果让计算机执行一个历时1000年才结束的算法,这虽然是有穷的,但超过了合理的限度,人们不把他是为有效算法。

数据结构

第10话:什么是算法?

它是你必修的心念系统
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法定义中,提到了指令,指令能被人或机器等计算装置执行。它可以是计算机指令,也可以是我们平时的语言文字。计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程。

数据结构

第九话:数据结构与算法的关系

很多算法需要借助数据结构
事实上,数据结构和算法也是类似的关系。只谈数据结构,当然是可以,我们可以在很短的时间就把几种重要的数据结构介绍完。听完后,很可能你没什么感觉,不知道这些数据结构有何用处。但如果我们再把相应的算法也拿来讲一讲,你就会发现,甚至开始感慨:哦,计算机界的前辈们,的确是一些很牛很牛的人。

数据结构

第八话:补充数据结构基本概念的关系

总结是为了更好地记忆
前面讲到数据结构的一些重要的基本概念,这块有点含糊,不方便记忆,这里整理成表格,应该学习效果会好些。数据(data) 是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中的,并且能被计算机程序处理的符号的总称。 数据可分为两大类:一类是数值数据,包括整数、实数等;另一个类是非数值数据,包括图形、图像、声音、文字等。

数据结构

第七话:抽象数据类型ADT

数据组织更加灵活
抽象数据类型(Abstract Data Type, ADT) 是一个数据结构以及定义在该结构上的一组操作的总称。它是对数据类型的抽象,抽象的意义在于数据类型不是高级程序语言支持的基本数据类型,而是自定义的数据类型。抽象数据类型(ADT)的定义和实现通常是分开的。

数据结构

第六话:关于数据类型

为什么要有数据类型
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围。类型就用来说明变量或表达式的取值范围和所能进行的操作。在C语言中,按照取值的不同,数据类型可以分为两类。

数据结构

第五话:数据的物理结构

顺序存储与链式存储
物理结构:是指数据的逻辑结构在计算机中的存储形式。数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。

数据结构

第四话:数据的逻辑结构

集合、线性、树、图
数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。“通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。” 这句话怎么理解呢?

数据结构

第三话:关于数据结构的一些概念

了解什么是数据与其结构
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。也就是说,我们这里说的数据,其实就是符号,而且这些符号必须具备两个前提:可以输入到计算机中,能被计算机程序处理。

数据结构

第二话:数据结构的历史与来由

正视数据结构的历史
早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。可现实中,我们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表、树和图等数据结构)的帮助,才能更好地处理问题。

数据结构

第一话:你的数据结构怎么学的?

开始数据结构的学习
有个人叫“小菜”,学生时,其实根本就没好好学数据结构,时常逃课,考试也是临时突击后勉强及格。毕业后,他几经求职,算是找到了一份程序员的工作。工作中,有一次他们需要开发一个客服电话系统,他们项目经理安排小菜完成客户排队模块的代码工作。
1 / 1 首页 < Prev 1 Next > 尾页 页码: