最近,小吴在追一部古装剧 —-《长安十二时辰》。
故事讲得是在上元节前夕,长安城混入可疑人员,身陷囹圄的张小敬临危受命,与少年天才李必携手在十二时辰内破除隐患。
该剧的一大亮点就在于 时间很紧迫,需要在二十四小时内捉拿蓄谋已久的“恐怖分子”。
而之所以张小敬与李必能及时破除隐患,依赖的是正确的使用数据结构与算法!
大案牍术与推荐算法
大案牍术的发明者是靖安司中的徐宾,凭借着神奇的“记忆宫殿”加上刻苦钻研,研究出了一套以档案数据为基础的处理事务的方法,即为“大案牍术”。
你可以将 大案牍术 理解为我们当下热门的 大数据。
依托于这个 大案牍术 ,可以快速分析大量数据信息进行推理,无论是破案调查找人,还是预言未来,都可以做到。
故事的主角张小敬正是凭借着 大案牍术 中的 推荐算法 脱颖而出,成为拯救长安的大英雄。
长安舆图与时间复杂度
对于“恐怖分子”狼卫来说,长安不是他们的家乡,是一个人生地不熟的陌生城市。
如果通过四处遍历的方式(暴力法)去寻找长安的核心目标,那再给他们几个月也是无法精准定位的,此时他们到达目的地的时间复杂度为 O(n2)。
所以,剧情一开始狼卫准备夺取 长安舆图 。
有了上面这份长安舆图便可轻易精准定位目标所在地,狼卫使用 长安舆图 优化了时间复杂度,达到了 O(n) 级别。
此时,长安危在旦夕。
“五尊阎罗”张小敬站出来了!对于他来说,长安可不是平面的,而是三维立体的,哪里有沟渠哪里能上房都一清二楚。
张小敬通过以空间换时间的方式(飞檐走壁),极大的优化了时间复杂度,达到了O(logn) 的级别。
正是因为他们使用的算法不同,这才在为张小敬能追上狼卫提供了理论上的支持。
望楼系统与加密算法
整部剧的信息传递极大的依赖于剧中的 望楼系统。
先说一下望楼:望楼是八丈高的瞭望塔,星罗棋布的安置于长安城中,敲鼓之后用方格拼出的图案传递信息。
图片来源于北斗北工作室
望楼系统 的信息传递使用的是公开的方式,视野处都能看到望楼上显示的花纹图案,但是它们的具体含义只有内部人员通过密码本进行查询,方可解密出对应的文字含义。
图片来源于北斗北工作室