用typescript写一个二分查找算法
以下是用typescript编写的二分查找算法:
function binarySearch(arr: number[], target: number): number {
let left = 0;
let right = arr.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
这个二分查找算法接受一个有序数组和一个目标值,返回目标值在数组中的下标。如果目标值不在数组中,则返回-1。
算法的基本思路是,首先将数组的左右边界设为0和数组的长度减1,然后计算中间位置的下标。如果中间位置的值等于目标值,则返回该下标;如果中间位置的值小于目标值,则将左边界移动到中间位置的右边一位,否则将右边界移动到中间位置的左边一位。不断重复这个过程,直到找到目标值或者左边界大于右边界为止。
原文地址: https://www.cveoy.top/t/topic/Mqt 著作权归作者所有。请勿转载和采集!