随机算法之舍伍德算法

不管那么多,先做下笔记,保留一些战果吧!

首先是舍伍德算法

这个算法的核心就是去除因为实例造成计算时间过长的情况。

最简单的例子,就是在排序的时候,我们知道如果排的序列是这个:

5,4,3,2,1

而你需要正序排列,每次选取第一个数作为基数,那么就会发现其时间复杂度居然是n^2

所以我们在通常不知道输入样例的情况下,希望尽可能的避免出现这种状况

这就涉及舍伍德随机算法了,其实就是把一些东西随机化

例如在对输入的数组进行随机,因为最后的排序结果依旧是相同的,所以是可行的

这样做的好处就是,不管你输入的是什么,反正我都随机了,至于随机的结果好与坏那是另外一个问题,服从均匀分布

好的时候可能是:1,2,3,4,5,

坏的时候可能是:5,4,3,2,1

但是此时已经与你输入的是什么无关了,只与概率相关,这样的话就会尽可能的避免因为用户的输入造成一些不好的结果。

posted @ 2018-06-28 10:07  沉默的赌徒  阅读(1884)  评论(0编辑  收藏  举报