为什么sort(()=>{return Math.random()-0.5)}乱序数组不准确。(注意结合插入排序原理来理解)

@1、chrome浏览器对于数组长度10以内为插入排序。反之则快速排序和插入排序混合

@2、所以,对于[1,2,3]

第一此比较对1和2就行排序,可能为正序也可能为倒序,所以两种可能一种生成[1,2,3]一种[2,1,3]。

第二次比较使用3和上述两种数组的第二个元素进行比较,也有两种排序可能,倒序和正序,如果为正序则不变排序完成。如果为倒序则需要和1或者2交换位置,假设第一次排序生成为[1,2,3],生成[1,3,2]此时插入排序并未完成。所以继续和1进行比较,又有两种情况。生成[3,1,2]或者[1,3,2]。

所以到[1,2,3]概率为1/2*1/2=25%。

数组乱序有六种可能,所以一种应该平均为100/6。所以这显然不对。

转载于:https://www.cnblogs.com/qdcnbj/p/11186873.html

sort(()={return Math.random()-0.5)}乱序数组不准确相关推荐

  1. 外文翻译 | 你以为你会用Math.random() ? 不,你不会……

    文章目录 制造动画效果 HTML CSS JavaScript 电子音乐 HTML SCSS CoffeeScript 随机显示图片 HTML CSS JavaScript 随机背景颜色 Pug SC ...

  2. [转][JS]Math.random()随机数的二三事

    原文链接:http://www.soulteary.com/2014/07/05/js-math-random-trick.html 看到题目,如果大家平时被问到:如何生成一个怎么样怎么样的整数随机数 ...

  3. JavaScript Math.random()方法介绍

    随机法 (Random Method) The JavaScript Math.random() method is an excellent built-in method for producin ...

  4. 【算法】在N个乱序数字中查找第K大的数字

    目录 1. 结论 2. 经典的几种解法 2.1 解法一:O(n*k) 2.2 解法二:O(n*logk) 2.3 解法三:O(n) 2.4 解法四:O(n*logn+k) 2.5 解法五:O(n*lo ...

  5. js: Math.random()获取随机数

    文档 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/random 获取一个 ...

  6. 算法 | 如何通过Math.random()方法实现X平方或更多次方的概率?

    前言 本文主要介绍Java中Math.random()方法以及该方法的简单应用. 每种语言都有随机方法,在Java中的随机方法有Math.random()方法.Random类. Math.random ...

  7. Java黑皮书课后题第4章:4.16(随机字符)编写一个程序,使用Math.random()方法显示一个随机的大写字母

    4.16(随机字符)编写一个程序,使用Math.random()方法显示一个随机的大写字母 题目 题目概述 破题 生成随机数 随机数与大写字母之间的转换:ASCII 转化为char型 代码 题目 题目 ...

  8. 【Aegisub相关】math.random 行为记录

    注意,下列代码中num仅在code行计算了一次随机值以后,就被循环复制了,所有行的结果都是同一个数字. 而跟code行没有联系的 !math.random(0,9)! 在每次循环生成的新行中,都重新计 ...

  9. 我的Java学习之路(第十八天)------ Math.random的使用

    (Eg:如果只需要一个答案,直接翻到最下面即可) 首先Math.random()是令系统随机生成一个大于等于 0.0 且小于 1.0 (前开后闭)的伪随机 double 值,为方便本篇叙述将其表示为: ...

最新文章

  1. 在raspberry的jessie版系统上安装opencv3.0
  2. 大数据开发套件—调度运维常见问题
  3. 结合jenkins以及PTP平台的性能回归测试
  4. 关于C#中使用SQLDMO来获取数据库中的一些操作
  5. ab 模拟_Ab测试第二部分的直观模拟
  6. C语言base64编解码
  7. 【剑指offer】面试题66:构建乘积数组(Java)
  8. MySQL Range Optimization
  9. python 一题多解 —— ndarray 一维数组的拼接
  10. 使用Nginx实现负载均衡
  11. 膝盖中了一箭之康复篇-第九个月暨3月份目标总结
  12. 谨防!黑客是这样偷窥你的智能手机
  13. Spring boot 与 Spring MVC
  14. java获取发件人_Java实现伪造发件人发送邮件
  15. 泊松过程2 | 泊松过程扩展
  16. 一闪一闪亮晶晶,满天都是小星星
  17. 在“https://money.cnn.com/data/markets/nasdaq/”抓取纳斯达克成分股数据并将数据表存到一个Excel表格中。
  18. infoQ 百度技术沙龙第25期回顾:海量数据处理技术解析
  19. 网络搭建与应用2022国赛环境无误版
  20. 2015年北京户口全攻略

热门文章

  1. java技术详解_Java反射技术详解及实例解析
  2. vscode could not establish connection to linux The VS Code Server failed to start
  3. Linux系统下如何查看及修改文件读写权限
  4. andriod开发环境配置
  5. 计算机辅助工艺设计张胜文,计算机辅助工装设计.ppt
  6. mysql错误号码1040_Mysql ERROR 1040 (00000): Too many connections
  7. [Jarvis OJ - PWN]——[XMAN]level3_x64
  8. Android NDK的文件夹
  9. Struts2与FreeMarker整合
  10. 远期合约(Forwards/Forward Contract )