你的洗牌算法有可能是错的

本篇实际上是下面两篇博客的读后总结。如果读得懂,就不用往下看了:

总结

为什么使用下面的排序算法洗牌,结果是错的?

  • 冒泡 先后边,后前边
  • 插入 县前边,后后边
  • 快排 先中间,后两边

后生成的随机数和先生成的随机数比较时,满足交换条件的可能性越来越小。

造成了打乱的结果变得有规律:

  • 先被比较随机数的位置随机性比较大
  • 后被比较随机数的位置保持原状的可能性比较大

怎么测试结果是随机的算法?

  • PC 机上是做不出真随机数的,只能做出伪随机数。真随机数需要硬件支持。
  • 一到概率问题,我们只有一个方法来做测试,那就是用统计的方式。
  • 测试的三个参数:样本数、最大误差、平均误差。
文章目录
  1. 1. 总结
    1. 1.1. 为什么使用下面的排序算法洗牌,结果是错的?
    2. 1.2. 怎么测试结果是随机的算法?