“快速排序法之要害,在于选择基准参考,并将队伍划分为矮于基准之人部分和高于基准之人部分。再缩小范围,复用此法,直至整个队伍有序。”
昭曰:“父亲,,,大都督所言不错,可为何不能使用此法?”
仲达指着队伍,言道:“诸将请看,千人之队,必有大量身高相等之人,若以快速排序法,势必做大量无用位置交换,徒耗不少功夫。快速排序法名曰快速,切不可纸上谈兵,还需审时度势,灵活变通才是”
司马昭点头,深以为然:“还是大都督老谋深算,末将虽研习多年,尤未可及也”
仲达于司马昭耳畔窃言数语,随即遣之出战。
司马昭来到队伍前面,将队伍分作两半,又将每一半继续分作两半,直至无可再分。接着按照大小合并每一个细分的部分为有序队伍,又进一步将这些有序队伍合并成更大的有序队伍,直至合并所有兵士为整体的有序队伍。
司马问道:“孔明,你可识得我儿司马昭所用排序之法?”
诸葛笑答:“别说是我,我蜀中三尺孩童也识得,此乃归并排序法,是也不是?”
司马未露声色,回看姜维,一不留神,姜维所排队伍竟已近尾声。
诸葛察之,问道:“仲达可识得姜维所用排序之法?”
司马细细观之,只见姜维从队首至队尾,依次询问所有人身高,并记录整个队伍之最矮与最高者,最终得最矮者六尺二寸,最高者八尺三寸。随即从六尺二寸、六尺三寸、六尺四寸,直至八尺二寸、八尺三寸共划分为二十二组。随后将所有人依次分入各组,再将各组依序合并。 千人之队,不待半个时辰,竟将完成。
片刻之后,姜维完成队列排序,此一轮,蜀胜。
司马仍未露声色,悄然返回军中,谓之左右曰:“诸葛亮果然有些本事,我不如也”
三局两胜,司马失利,依约后撤五十里,高挂免战牌,自此坚守不出。
彩蛋撤军路上,昭问仲达:“大都督,蜀将姜维所用何法,竟能如此神速?”
不待仲达开口,前方一哨骑回报:“报~,大都督,蜀将魏延趁两军对峙,亲率两万铁骑攻我大营,我守将不备,大营给,给丢了”
司马怒目圆睁,摔下马去。
文中动图来源
《十大经典排序算法(动图演示)》:https://www.cnblogs.com/onepixel/articles/7674659.html
作者:一像素
往期热门回顾因为一个跨域请求,我差点丢了饭碗
一个神秘URL酿大祸,差点让我背锅!
就为了一个原子操作,其他CPU核心都罢工了
完了!CPU一味求快出事儿了!
可怕!CPU竟成了黑客的帮凶!
哈希表哪家强?几大编程语言吵起来了!
震撼!全网第一张源码分析全景图揭秘Nginx
一网打尽!每个程序猿都该了解的黑客技术大汇总
DDoS攻击:无限战争
一个Java对象的回忆录:垃圾回收
谁动了你的HTTPS流量?
路由器里的广告秘密
一个HTTP数据包的奇幻之旅
我是一个流氓软件线程