龙空技术网

程杰《大数据结构》| 究竟是什么样的算法运气这么差

不可置信Keep 136

前言:

现在姐妹们对“大话数据结构算法”大概比较关怀,大家都想要知道一些“大话数据结构算法”的相关内容。那么小编也在网摘上网罗了一些有关“大话数据结构算法””的相关资讯,希望兄弟们能喜欢,同学们一起来学习一下吧!

你早晨上班出门后突然想起来,手机忘记带了。

这年头,钥匙、钱包、手机三大件,出门哪样也不能少呀。于是回家找。

打开门一看,手机就在门口玄关的台子上,原来是出门穿鞋时忘记拿了。

这当然是比较好,基本没花什么时间寻找。

可如果不是放在那里,你就得进去到处找,找完客厅找卧室、找完卧室找厨房、找完厨房找卫生间,就是找不到,时间一分一秒地过去, 你突然想起来,可以用家里座机打一下手机,听着手机铃声来找呀,真是笨。

终于找到了,在床上枕头下面。你再去上班,迟到。

见鬼,这一年的全勤奖,就因为找手机给黄了。

找东西有运气好的时候,也有怎么也找不到的情况。但在现实中,通常我们碰到的绝大多数既不是最好的也不是最坏的,所以算下来是平均情况居多。

算法的分析也是类似,我们查找一个有n个随机数字数组中的某个数字,最好的情况是第一个数字就是,那么算法的时间复杂度为0(1),但也有可能这个数字就在最后一个位置上待着,那么算法的时间复杂度就是0(m),这是最坏的一种情况了。

最坏情况运行时间是一种保证,那就是运行时间将不会再坏了。

在应用中,这是一种最重要的需求, 通常,除非特别指定,我们提到的运行时间都是最坏情况的运行时间。

而平均运行时间也就是从概率的角度看,这个数字在每一个位置的可能性是相同的,所以平均的查找时间为n/2次后发现这个目标元素。

平均运行时间是所有情况中最有意义的,因为它是期望的运行时间。也就是说,我们运行一段程序代码时,是希望看到平均运行时间的。

可现实中,平均运行时间很难通过分析得到,一般都是通过运行一定数量的实验数据后估算出来的。

对算法的分析,一种方法是计算所有情况的平均值,这种时间复杂度的计算方法称为平均时间复杂度。

另一种方法是计算最坏情况下的时间复杂度,这种方法称为最坏时间复杂度。

一般在没有特殊说明的情况下,都是指最坏时间复杂度。

来源:程杰《大话数据结构》第2章

标签: #大话数据结构算法