这里写自定义目录标题
最近想入门数据结构与算法,打开书本,时间复杂度给了我当头一棒。
啥是时间复杂度啊?
虽然当时被这个概念搞得手足无措,但坚韧的我怎么会就此放弃,顺理成章的达成数据结构与算法从入门到放弃的小目标。
于是,经过我多方查证,仔细琢磨。在一个夜黑风高的夜晚,终于摘下了它神秘的面纱。故此,就有了这次分(炫)享(耀)的机会。
这里,我要从一个学霸的故事讲起。
从前有个学霸,他叫核涛酥(也就是本人,后面简称小酥),读小学时,每次数学考试都是满分的成绩,这也是小酥引以为傲的事情。但是就像白雪公主的快乐时光一样——好景不长,小酥遇到了他的第一个对手小富(想不起名字来了,看到富光的水杯,灵机一动,就叫小富吧)。小富也是一个名副其实的学霸,数学成绩呢,从来就是考99,哎,就是比小酥差一分!!!(由于小富是能够得100分的,由于追求速度,总会有个1分题做错,这句假设很重要)
小富很是苦恼,个头个头没小酥高,考试考试没小酥会考。怎么办呢?也是在一个月黑风高的夜晚,他灵机一动,分数考不过,但是可以在做题时间上下功夫啊。于是经过数十年的风吹雨打,饱受摧残的小富最终练成了神功——做题最快没有之一大法。光是这做题速度,他要是站在擂台上守擂,包准喝到一大批英雄好汉面面相觑,无一人敢上去一较雌雄。
但是!小酥自诩不是英雄好汉,也拉的下脸皮去和他激情SOLO。他们们相约在一个玫瑰花开的季节,那天下着如注的大雨,没带伞的我和小富被浇了个雨水喷头,由于个头原因,身高越矮受到风的阻力越小,小富先我30秒跑进教室,也不管浇透了的衣物,撸起袖子就是一阵奋笔疾书,由于神功的原因,只见小富右手的五根手指各卷着一支笔,以常人五倍速的速度完成着试卷。后到的小酥见到小富这波操作也是惊到下巴都掉到可以把身上的雨水装得一滴不剩了。这下坏了,这要按往常的速度,肯定做都做不完,小酥也模仿起小富拿笔的姿势,但怎么学也只学到八成,一只手夹着四只笔开始了今天的比赛。
最终,小富在30分钟的时候做完了试卷,得分99分,小酥在30分钟零30秒的时候完成了试卷,得分100分。
(故事讲完,开始枯燥的理论总结过程了)
时间复杂度就是做完指定动作需要的时间。
如果将做试卷到100分设为一个动作、时间基数设为1分钟的话,小富的时间复杂度就是30/99 100=30.3分钟。而小酥的时间复杂度是30.5100/100=30.5分钟。由此可见小酥在时间复杂度上是打不过小富的。
但是我们也知道由于下雨和身高问题,小酥比小富开始做题时间要晚大于30秒,于是假如在同一条件下,小酥时间复杂度是优于小富的,也就是最终赢家应该是小酥。
而在实际打擂台的过程中,不一样的算法受到不一样的条件制约,很难做到绝对的同步,也就是时间绝对公平,于是各种评价方法应运而生,到目前为止还没有很完美的相近复杂条件下的时间复杂度评价方法,换句话说,在时间复杂度相近,而条件很复杂的情况下,评价高低的方法还是由你我决定的,也就是人的主观能动性。
能动的你,觉得,最终会判小酥胜利还是小富胜利呢?