gpt4 book ai didi

javascript - 为什么这个合并排序 java 脚本实现不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:05 24 4
gpt4 key购买 nike

<分区>

我试了一整天,似乎无法找出它不起作用的原因。我认为问题出在我的 JavaScript 语言技能上。我可能遗漏了一些关于参数传递的概念。你能告诉我错误在哪里吗?

这是我的实现,基于我一年前用 C# 编写的另一个实现,可以找到 here .

下面是代码(您可以直接在 Chrome 控制台上尝试,只需复制/粘贴即可“运行”):

function merge(A, p, q, r){
var n1 = q - p + 1;
var n2 = r - q;

var i = 0;
var j = 0;

var L = [];
while (i < n1){
L.push(A[p + i++]);
}

var R = [];
while(j < n2){
R.push(A[q + j++ + 1]);
}

L.push(Number.MAX_VALUE);
R.push(Number.MAX_VALUE);

i = 0;
j = 0;

var k = p;
while(k <= r){
if(L[i] <= R[i]){
A[k] = L[i];
i = i + 1;
}else{
A[k] = R[j];
j = j + 1;
}

k = k + 1;
}
}

function mergeSort(A, p, r){
console.log(A);

if(p < r){
var q = Math.floor((p + r) / 2);

mergeSort(A, p, q);
mergeSort(A, q + 1, r);
merge(A, p, q, r);
}
}

function testMergeSort(array){
var p = 0;
var r = array.length - 1;

console.log("BEFORE: " + array);

mergeSort(array, p, r);

console.log("AFTER: " + array);
console.log("---------------------------------");
}

testMergeSort([5, 2, 4, 7, 1, 3, 2, 6]);

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com