Javascript快速排序实现错误
这是我第一次尝试实现快速排序,以便更好地理解算法,它似乎工作得很好,但第二次我换到另一个测试用例时,它似乎坏了,不能完全排序。我不确定代码中的问题在哪里,我尝试过谷歌搜索,并尝试将hoarePartition中最外层的while循环更改为while(左<右),但它似乎也没有对数组进行完全排序 关于如何修复下面的程序,有什么建议吗? 谢谢Javascript快速排序实现错误,javascript,algorithm,quicksort,Javascript,Algorithm,Quicksort,这是我第一次尝试实现快速排序,以便更好地理解算法,它似乎工作得很好,但第二次我换到另一个测试用例时,它似乎坏了,不能完全排序。我不确定代码中的问题在哪里,我尝试过谷歌搜索,并尝试将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];以及