排序算法用于将一个序列变成有序的,而洗牌算法则用于将一个序列打“乱”,可以认为是排序算法相反。洗牌算法需要借助随机数实现来打“乱”序列。
洗牌算法正确性的判断准则(“乱”的判断依据):对于包含n个元素的序列,其全排列有n!种可能,故若一个洗牌算法将序列打乱的不同结果有n!种则该算法就是正确的洗牌算法。如果打乱的结果可能的种数比n!大,则说明有些情况出现的概率更大。
参阅:https://github.com/labuladong/fucking-algorithm/blob/master/算法思维系列/洗牌算法.md
来源:https://www.cnblogs.com/z-sm/p/12393211.html