不管那么多,先做下笔记,保留一些战果吧!
首先是舍伍德算法
这个算法的核心就是去除因为实例造成计算时间过长的情况。
最简单的例子,就是在排序的时候,我们知道如果排的序列是这个:
5,4,3,2,1
而你需要正序排列,每次选取第一个数作为基数,那么就会发现其时间复杂度居然是n^2
所以我们在通常不知道输入样例的情况下,希望尽可能的避免出现这种状况
这就涉及舍伍德随机算法了,其实就是把一些东西随机化
例如在对输入的数组进行随机,因为最后的排序结果依旧是相同的,所以是可行的
这样做的好处就是,不管你输入的是什么,反正我都随机了,至于随机的结果好与坏那是另外一个问题,服从均匀分布
好的时候可能是:1,2,3,4,5,
坏的时候可能是:5,4,3,2,1
但是此时已经与你输入的是什么无关了,只与概率相关,这样的话就会尽可能的避免因为用户的输入造成一些不好的结果。