マージソートアルゴリズムの実装後に何が問題になりますか。 は未定義を返します。javascriptでのマージソートの簡単な実装
エラーは、マージ機能のどこかにあると思われます。
誰かが私にエラーを指摘するのに役立つことができます。
function mergeSort(arr1, lower, higher) {
if (lower < higher) {
var mid = Math.floor((lower + higher)/2);
mergeSort(arr1, lower, mid);
mergeSort(arr1, mid + 1, higher);
merge(arr1, lower, mid, higher);
}
}
マージ機能ここで
function merge(arr1, lower, mid, higher) {
var i = lower;
var j = mid + 1;
var k = 0;
var mergearr = [];
while (i < j && j <= higher) {
if (arr1[i] <= arr1[j]) {
mergearr[k] = arr1[i];
k++;
i++;
} else {
mergearr[k] = arr1[j];
k++;
j++;
}
}
if (i === j) {
while (j < higher) {
mergearr[k] = arr1[j];
k++;
j++;
}
} else if (j > higher) {
while (i < j) {
mergearr[k] = arr1[i];
k++;
i++;
}
}
for (var a = 0; a <= k; a++) {
console.log(a);
arr1[a] = mergearr[a];
console.log(arr1[a]);
}
return arr1;
}
は、merge()
機能があり、「オフ・バイ・1」の並べ替え中のエラーはさておき可能設定コンソール
index: 0
value: 4
index: 1
value: 5
index: 2
value: 4
index: 3
value: undefined
index: 0
value: 4
index: 1
value: 4
index: 2
value: 5
index: 3
value: 4
index: 4
value: undefined
index: 0
value: undefined
index: 1
value: 4
index: 2
value: undefined
index: 3
value: undefined
index: 0
あなたは 'mergeSort'関数で何も' return'しません。 – omerowitz