Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这种选择排序算法的行为如此怪异_Javascript_C_Algorithm_Sorting_Selection Sort - Fatal编程技术网

Javascript 为什么这种选择排序算法的行为如此怪异

Javascript 为什么这种选择排序算法的行为如此怪异,javascript,c,algorithm,sorting,selection-sort,Javascript,C,Algorithm,Sorting,Selection Sort,我半睡半醒,所以我可能忽略了这里的一些东西,但发生的事情很奇怪。我在JavaScript中实现了来自的选择排序算法。您可以在下面或处查看代码 问题 我正在用一个for循环填充一个数组,其中包含10000个随机生成的数字,因为需要那么多数字才能显示问题。该算法在9800以下的任何情况下都能正常工作。但是,对于10000个数字和空的未排序数组var unsorted=[]最后的数字是这样交替的9,10,9,10,9,10,9,10…。如果我使用至少一个元素初始化unsorted数组,即var uns

我半睡半醒,所以我可能忽略了这里的一些东西,但发生的事情很奇怪。我在JavaScript中实现了来自的选择排序算法。您可以在下面或处查看代码

问题 我正在用一个for循环填充一个数组,其中包含10000个随机生成的数字,因为需要那么多数字才能显示问题。该算法在9800以下的任何情况下都能正常工作。但是,对于10000个数字和空的未排序数组
var unsorted=[]最后的数字是这样交替的
9,10,9,10,9,10,9,10…
。如果我使用至少一个元素初始化
unsorted
数组,即
var unsorted=[1],交替问题已修复

那么,为什么会发生这种情况?为什么在未排序数组包含至少9800个数字时会发生这种情况?为什么在通过for循环填充未排序数组之前用至少一个数字初始化未排序数组时会发生这种情况

编辑 这个问题似乎并不总是发生,所以如果你第一次尝试时一切看起来都井然有序,那么再尝试几次。此外,我已经在Edge、Firefox和Opera上测试了它,问题出现在不同的浏览器上。(截至目前的最新版本)

var unsorted=[];
for(设i=0;i<10000;i++){
未排序的[i]=Math.floor(Math.random()*11);
}
for(设j=0;jconsole.log(未排序)我在这里的堆栈代码段中没有看到问题,或者如果我克隆了你的jsbin。奇怪的是,我在第一次克隆它时得到了正确的答案,但是当我重新运行它时,答案是错误的。抱歉,代码段和jsbin被设置为循环9800次,这不会显示问题。循环需要循环10000次才能显示问题。我现在在上面截取的代码和JSBin中更改了它。我仍然没有看到这里的问题,但我在9800的JSBin中看到了它。您使用的是什么浏览器?