草庐IT

randomized_quick_sort

全部标签

javascript - 为什么这个 random() 分布看起来不对称?

编辑:这是使用GoogleChrome36我正在摆弄html5Canvas,生成随机分布在立方体中的点并将其投影到2DCanvas上。令人惊讶的是,结果看起来一点也不对称,我怀疑Javascript的Math.random()让我失望了。谁能告诉我为什么会这样?有没有可能让它看起来实际上是随机的,而不让它变慢?varctx=canvas.getContext('2d');for(vari=0;ihttp://jsfiddle.net/y10tvj26/(需要一段时间才能加载) 最佳答案 Chrome有一个documentedissu

sort() a 和 b 变量中的 JavaScript 回调函数

我试图了解sort()函数如何与传递给它的回调函数一起工作。更具体地说,a和b的值示例代码:varn=[4,11,2,10,3,1];n.sort(function(a,b){console.log(a);console.log(b);console.log('--')returna-b;});结果:411--112--42--1110--410--113--103--43--23--111--101--41--31--21--第一轮我可以遵循a=4,和b=11,很容易遵循。第二轮我可以遵循a=11和b=2。但在那之后我有点松散地跟踪实际发生了什么,例如当你到达a=4和b=3时。这实际

javascript - 生成和连接 3 个 Math.random() 值是否比 1 个 Math.random() 值更随机?

我需要为较长叙述中的多个句子生成唯一ID(其中多个用户可以同时在不同的机器上执行相同的操作)。我考虑过使用newDate().getTime()(可能还连接了一个username),但由于id是在遍历句子时在循环中生成的,我发现创建了重复项(因为生成可能发生在同一毫秒)。所以我目前正在玩:varrandom1=Math.floor((Math.random()*10000)+1).toString(36);varrandom2=Math.floor((Math.random()*10000)+1);varrandom3=Math.floor((Math.random()*10000)+

javascript - JS : How to create a random picker that won't pick the same item twice?

我正在为一款游戏制作一个随机英雄选择器,这个工具会为玩家随机选择英雄。我想添加一个为整个3人团队挑选英雄的功能,但我不知道如何做到这一点,这样同一个英雄就不会被挑选超过一次。这是我为玩家挑选随机英雄的代码示例。提前谢谢你!!!!functionpickhero(){varimagenumber=16;varrandomnumber=Math.random();varrand1=Math.round((imagenumber-1)*randomnumber)+1;images=newArrayimages[1]="http://www.vaingloryfire.com/images/w

javascript - 输入的初始排序如何影响 Array.sort 性能?

输入的顺序是否可能影响Array.sort()的性能?如果是,怎么办? 最佳答案 这取决于几件事:运行时(不同的浏览器/运行时使用不同的排序算法)您输入的内容相对于所需顺序的排列方式是否使用自定义比较器(也与上一点有关)我正在处理的一个应用程序在一个模块中遇到了严重的性能下降,该模块正在对35K+字符串的列表进行排序,在它访问的API端点开始按排序顺序向其提供数据后。前端排序花费的时间从大约30毫秒减少到6秒(200x)。排序是使用自定义比较器完成的,该比较器优先考虑以特定后缀结尾的字符串。如果没有或两个字符串都以后缀结尾,则使用自

javascript - Math.floor(Math.random() * 5 + 1)的概念,真实范围是多少,为什么?

通过将随机数(介于0和1之间)乘以5,我们使其成为介于0和5之间的随机数(例如,3.1841)。Math.floor()将该数字向下舍入为整数,并在末尾添加1将范围从0到4更改为1到5(最多并包括5)。上面的解释让我很困惑……我的解释如下:--加上5得到5个数字的范围--但它以0开头(像数组?)--所以它在技术上是0-4--加上一个,就变成了1-5我是JS的新手,甚至不知道这种问题在这里是否合适,但这个网站到目前为止一直很棒。感谢您的帮助! 最佳答案 来自MozillaDeveloperNetworks'documentation在

javascript - sort(), sort(function(a,b){return a-b;}); 之间的区别和排序(函数(a,b){...})

我想了解sort()的工作原理以及我应该如何使用它。我做了一些研究(谷歌)并在stackoverflow上解决了类似的问题,但仍有一些事情对我来说不是100%清楚。到目前为止,我的理解如下:有:不带参数的sort():仅对String值的简单数组进行字母和升序排序例如//sortalphabeticallyandascending:varmyArr=["Bob","Bully","Amy"]myArr.sort()//Arraynowbecomes["Amy","Bob","Bully"]sort()withafunctionasaparameter:根据属性对数组中的对象进行排序;然

javascript - Bootstrap table Js 中的 data-sort-name 是如何工作的?

我正在使用以下库:http://bootstrap-table.wenzhixin.net.cn/documentation/我将json对象加载到这个工作正常的表中,但现在问题来了。我希望能够对列进行排序。我的Json布局如下:[{"Total":12345.56,"Name":"Monkey1","TotalFormatted":"$12.345,56"},{"Total":13345.56,"Name":"Monkey3","TotalFormatted":"$13.345,56"},{"Total":11345.56,"Name":"Monkey2","TotalFormatt

javascript - Math.floor(Math.random()) +1 实际上做了什么?

当你有Math.floor(Math.random()*10)+1时,它应该根据我的理解选择1-10之间的随机数。但是,当我将+1更改为高于或低于1的任何数字时,我得到相同的结果。为什么是这样?+1到底是什么意思? 最佳答案 随机数生成器产生的值在0.0+1偏移量的数字。通常你可以使用:Math.floor(Math.random()*N)+M这将生成M和M+N-1之间的值。demoFiddle 关于javascript-Math.floor(Math.random())+1实际上做了什

javascript - 为什么 Javascript sort() 函数没有给出预期的输出?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:sortnotworkingwithintegers?HowtosortnumberinjavascriptsortmethodArray.sort()doesn'tsortnumberscorrectly代码:varx=[40,100,1,5,25,10];x.sort();输出:1,10,100,25,40,5我的预期输出:1,5,10,25,40,100