以图明志

数据结构

[专题] 第05话:线性表的遍历、插入操作

详细介绍插入操作的算法思路
插入算法的思路:如果插入位置不合理,抛出异常;如果线性表长度大于等于数组长度,则抛出异常或动态增加容量;从最后一个元素开始向前遍历到第i个位置,分别将它们都向后移动一个位置;将要插入元素填入位置i处;表长加1。插入操作会改变原有链表,所以要用地址传递。

数据结构

[专题] 第04话:线性表的初始化

开始用代码去理解数据结构
初始化的函数怎么写呢。初始化就是建立一个空线性表,那直接把长度置为0就行了。因为要初始化,要对线性表本身进行操作,所以不能用值传递。值传递不会改变实参的值嘛。地址传递的话呢,实际上在函数内部执行了这么一个操作:L = &L. 所以操作函数内部的L,也就相当于操作外部的线性表L。

数据结构

[专题] 第03话:线性表的顺序存储结构

线性表的结构体设计
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。既然线性表的毎个数据元素的类型都相同,所以可以用C语言(其他语言也相同)的一维数组来实现顺序存储结构,即把第一个数据元素存到数组下标为0的位置中,接着把线性表相邻的元素存储在数组中相邻的位置。

数据结构

[专题] 第02话:线性表的抽象数据类型ADT定义

线性表有哪些基本操作?
前面我们已经给了线性表的定义,现在我们来分析一下,线性表应该有一些什么样的操作呢?然后再定义线性表的ADT。对于不同的应用,线性表的基本操作是不同的,上述操作是最基本的,对于实际问题中涉及的关于线性表的更复杂操作,完全可以用这些基本操作的组合来实现。

数据结构

[专题] 第01话:线性表的概念与定义

什么是线性表
线性表(List):零个或多个数据元素的有限序列。首先它是一个序列。也就是说,元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。如果一个小朋友去拉两个小朋友后面的衣服,那就不可以排成一队了。

数据结构

[专题] 第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语言中,按照取值的不同,数据类型可以分为两类。
5 / 10 首页 < Prev 3 4 5 6 7 Next > 尾页 页码: