35匹马选前三名问题
有35匹马,要通过跑马(不借助其他工具)确定前三名,每次可以跑6匹,如何设计一个算法使得跑的次数最少?期望答案是7次,具体过程自己百度,但是这个算法可以作为优化大数据求TopN的算法。
第一步:分治法 (散列,多线程都可以)
第二步:排序或计数
第三步:排除法(局部热点数据,含递推思想)(还有简单的归并思想)
本文介绍了一个趣味算法问题:如何通过最少次数的赛马来确定35匹马中的前三名,每次比赛限六匹马参与。文章分为三个步骤进行讲解:首先采用分治法分散处理;其次进行排序或计数;最后利用排除法确定最终结果。
有35匹马,要通过跑马(不借助其他工具)确定前三名,每次可以跑6匹,如何设计一个算法使得跑的次数最少?期望答案是7次,具体过程自己百度,但是这个算法可以作为优化大数据求TopN的算法。
第一步:分治法 (散列,多线程都可以)
第二步:排序或计数
第三步:排除法(局部热点数据,含递推思想)(还有简单的归并思想)
4150
1829