扫码加入训练营

牢记核心词

学习得礼盒

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

2013-12-10 15:42:30来源:新东方在线编辑

  ◆ 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

  渐近时间复杂度的表示法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 < 2^100 < lgn < √n < n^(3/2) < n^lgn < (3/2)^n < 2^n < n! < n^n

  算法:是对特定的问题求解步骤地一种描述,是指令的有限序列。有五个基本的特性

考研公开课小程序

本文关键字: 计算机 考研 数据结构

考研英语核心词汇营

背词+听课+练习+督学,学习得礼盒

更多资料
更多>>
更多内容

关注新东方在线考研服务号

获得21考研真题及答案解析

1. 打开手机微信【扫一扫】,识别上方二维码;
2.点击【关注公众号】,获取资料大礼包。

考研资料大礼包
近10年考研真题及答案免费下载
更多>>
更多公开课>>
更多>>
更多资料