要在列表(数组)的正确位置插入数字,可以使用二分查找算法来确定插入位置,然后使用数组的插入方法将数字插入到该位置。以下是一个示例代码,展示了如何在JavaScript中实现这一功能:
function binarySearchInsert(arr, num) {
let left = 0;
let right = arr.length - 1;
while (left <= right) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] === num) {
return mid; // 如果找到相同的数字,直接返回索引
} else if (arr[mid] < num) {
left = mid + 1;
} else {
right = mid - 1;
}
}
// 插入位置为 left
arr.splice(left, 0, num);
return left;
}
// 示例用法
let list = [1, 3, 5, 7, 9];
let numberToInsert = 4;
let index = binarySearchInsert(list, numberToInsert);
console.log(`Inserted ${numberToInsert} at index ${index}`);
console.log(list); // 输出: [1, 3, 4, 5, 7, 9]
push
方法。通过上述方法,你可以高效地在有序数组中插入新元素,并确保数组仍然保持有序状态。
领取专属 10元无门槛券
手把手带您无忧上云