Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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_Algorithm_Quicksort - Fatal编程技术网

Javascript快速排序实现错误

Javascript快速排序实现错误,javascript,algorithm,quicksort,Javascript,Algorithm,Quicksort,这是我第一次尝试实现快速排序,以便更好地理解算法,它似乎工作得很好,但第二次我换到另一个测试用例时,它似乎坏了,不能完全排序。我不确定代码中的问题在哪里,我尝试过谷歌搜索,并尝试将hoarePartition中最外层的while循环更改为while(左

这是我第一次尝试实现快速排序,以便更好地理解算法,它似乎工作得很好,但第二次我换到另一个测试用例时,它似乎坏了,不能完全排序。我不确定代码中的问题在哪里,我尝试过谷歌搜索,并尝试将hoarePartition中最外层的while循环更改为while(左<右),但它似乎也没有对数组进行完全排序

关于如何修复下面的程序,有什么建议吗? 谢谢

var arr=[3029159323293129350231923,104,29,45,23,159303,2,5,9,20,11,16];
控制台日志(arr);
变量快速排序=函数(arr、左、右){
左=左| | 0;
右=右| |棱长-1;
var pivot=重新分区(arr、左、右);
如果(左<枢轴-1){
快速排序(arr,左,枢轴-1);
} 
如果(右>轴){
快速排序(arr、枢轴、右侧);
}
返回arr;
}
var分拣机=快速分拣(arr);
控制台日志(分拣机);
/////////////////
功能重新分区(arr、左、右){
变量轴=数学楼层((左+右)/2);
while(左arr[枢轴]){
对--;
}

if(left)(如果我说“Array.sort()有什么问题”
,我遗漏了什么?因为我肯定错过了一些东西。这一行打算做什么?
right=right | | | | arr.length-1;
你有一个测试用例的例子吗?@MBo这一行将设置参数
right
,如果它不是未定义的,其他方面
right
是数组的最后一个索引。@MarkMeyer我尝试过随机测试ca大小发生变化的ses,数组元素的值,例如:var arr=[30,291,59323,2931,2935023,1923,104,29,45,23,1,59303,2,123382,9,20,11,16];以及