考研论坛

 找回密码
 立即注册
查看: 247|回复: 1

计算机考研:数据结构常用算法精析(1)

[复制链接]

33万

主题

33万

帖子

100万

积分

论坛元老

Rank: 8Rank: 8

积分
1007237
发表于 2017-8-6 14:43:19 | 显示全部楼层 |阅读模式
数据结构是计算机考研408计算机学科专业基础综合的重要组成部分,考生需要认真复习,尤其是对于数据结构中一些常用的算法问题,考生一定要弄懂弄会,理解的去掌握。新东方在线小编下面一一为大家分析一下,帮助考生更好地去掌握。
    第一章
    ◆ 数据:指能够被计算机识别、存储和加工处理的信息载体。
    ◆ 数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。数据元素有时可以由若干数据项组成。
    ◆ 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。
    在高级语言程序中又分为:非结构的原子类型和结构类型
    ◆ 抽象数据类型(ADT):是指一个数学模型以及定义在该模型上的一组操作。
    一个抽象的数据类型的软件模块通常包含 定义和表示和实现
    用三元组(D,S,P):数据对象、数据关系、基本操作
    ◆ 数据结构:指的是数据之间的相互关系,即数据的组织形式。一般包括三个方面的内容:
    数据的逻辑结构、存储结构和数据的运算。
    ◆ 逻辑结构:指各数据元素之间的逻辑关系。
    ◆ 存储结构:就是数据的逻辑结构用计算机语言的实现。
    ◆
线性结构:数据逻辑结构中的一类,它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构。
    ◆ 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。
    常用的存储表示方法有四种:
    ◆ 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的
    逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。
    ◆ 链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是
    由附加的指针字段表示的。由此得到的存储表示称为链式存储结构。
    ◆ 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。
                    
回复

使用道具 举报

0

主题

7619

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15996
发表于 2017-8-6 15:40:57 | 显示全部楼层
    ◆ 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。
    渐近时间复杂度的表示法T(n)=O(f(n)),这里的"O"是数学符号,它的严格定义是"若T(n)和f(n)是定义在正整数集合上的两个函数,则T(n)=O(f(n))表示存在正的常数C和n0
,使得当n≥n0时都满足0≤T(n)≤C·f(n)。"用容易理解的话说就是这两个函数当整型自变量n趋向于无穷大时,两者的比值是一个不等于0的常数。这么一来,就好计算了吧。
    求某一算法的时间复杂度是关于N的统计,下面的例子很有反面意义
    x=91; y=100;
    while(y>0)
    if(x>100)
    {x=x-10;y--;}
    else x++;
    ◆ T(n)=O(1)
    ◇ 这个程序看起来有点吓人,总共循环运行了1000次,但是我们看到n没有? 没。
    ◇ 这段程序的运行是和n无关的,就算它再循环一万年,我们也不管他,只是一个常数阶的函数。
    算法的时间复杂度仅与问题的规模相关吗?
    ◆
No,事实上,算法的时间复杂度不仅与问题的规模相关,还与输入实例中的元素取值等相关,但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。我们在讨论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。
    增长率由小至大的顺序排列下列各函数: 2^100, (2/3)^n,(3/2)^n, n^n , , n! ,2^n ,lgn ,n^lgn,
n^(3/2)
    ◇ 分析如下:2^100 是常数阶; (2/3)^n和 (3/2)^n是指数阶,其中前者是随n的增大而减小的; n^n是指数方阶; √n 是方根阶,
n! 就是n(n-1)(n-2)... 就相当于n次方阶;2^n 是指数阶,lgn是对数阶 ,n^lgn是对数方阶,
n^(3/2)是3/2次方阶。根据以上分析按增长率由小至大的顺序可排列如下:
    ◆ (2/3)^n     有穷性、确定性、可行性、输入、输出
    确定性:每条指令不能有二义性,对于同样的输入有同样的输出
    可行性:算法中所用到的操作都是已经实现的基本运算或通过有限次能实现的
    输入:有0个或多个输入
    输出:有一个或多个输出
    设计算法的要求(追求的目标)
    正确性、可读性、健壮性、效率与低存储量需求
    算法原地工作:当空间复杂度为O(1)时,称算法为就地工作(原地工作)。
    多型数据类型:是指其值的成分不确定的数据类型。从抽象数据类型的角度看,具有相同的数学抽象特性,故称之为 多型数据类型。
    数据结构是一门研究什么内容的学科?
    研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等学科
    对于一个数据结构,一般包括哪三个方面的讨论?
    数据的逻辑结构、存储结构和数据的运算。
    逻辑结构有 线形结构(1) , 树型结构 (2) , (3)网状结构 ,集合(4)_四种。
    平方和公式: =n*(n+1)*(2n+1)/6
    斐波那契数列计算的时间复杂度是O(n)
    第1章节有关数据结构算法,上文中为大家作了分析,希望考生对于这些算法能够熟记于心,方便考试的应用和日后的实际操作,预祝大家都能够取得好成绩,加油!
   
                    
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|新都网 ( 京ICP备09058993号 )

GMT+8, 2024-4-20 15:29 , Processed in 0.073242 second(s), 7 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表