在 JavaScript 中合併兩個已排序陣列,以形成一個結果已排序陣列
要求我們編寫一個 JavaScript 函式,該函式接收兩個已排序的數字陣列。該函式應該將兩個數組合並在一起,形成一個結果已排序陣列,並返回該陣列。
例如,
如果兩個陣列為
const arr1 = [2, 6, 6, 8, 9]; const arr2 = [1, 4, 5, 7];
則輸出陣列應為
const output = [1, 2, 4, 6, 6, 7, 8, 9];
示例
程式碼如下:
const arr1 = [2, 6, 6, 8, 9];
const arr2 = [1, 4, 5, 7];
const mergeSortedArrays = (arr1 = [], arr2 = []) => {
let m = arr1.length;
let n = arr2.length;
let currentIndex = m + n;
const checkNum1HasLargerNumber = (a, b) => {
if (a < 0) {
return false;
};
if (b < 0) {
return true;
};
return arr1[a] >= arr2[b];
};
m −= 1;
n −= 1;
while (currentIndex−−) {
let hasNums1LargerNumber = checkNum1HasLargerNumber(m, n);
arr1[currentIndex] = hasNums1LargerNumber ? arr1[m] : arr2[n];
if (hasNums1LargerNumber) {
m −= 1;
} else {
n −= 1;
}
};
};
mergeSortedArrays(arr1, arr2);
console.log(arr1);輸出
控制檯中輸出結果:
[ 1, 2, 4, 5, 6, 6, 7, 8, 9 ]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP