教做月嫂的网站有吗,网店美工岗位职责,俄语 网站,软件开发计划模板要寻找数组中最接近目标的数字#xff0c;你可以使用一种称为线性搜索或二分搜索的方法#xff0c;具体取决于数组是否已排序。以下是这两种方法的示例#xff1a; 1. 线性搜索#xff08;未排序数组#xff09;#xff1a; 如果数组未排序#xff0c;你可以使用线性搜索…要寻找数组中最接近目标的数字你可以使用一种称为线性搜索或二分搜索的方法具体取决于数组是否已排序。以下是这两种方法的示例 1. 线性搜索未排序数组 如果数组未排序你可以使用线性搜索来查找最接近目标的数字。这个方法将遍历整个数组找到与目标最接近的数字。
def find_closest_number(arr, target): closest arr[0] min_difference abs(target - arr[0]) for num in arr: difference abs(target - num) if difference min_difference: min_difference difference closest num return closest 示例用法
arr [4, 7, 12, 15, 18]
target 9
result find_closest_number(arr, target)
print(最接近的数字是:, result) 二分搜索已排序数组 如果数组已排序你可以使用二分搜索来更有效地找到最接近目标的数字。 def binary_search_closest(arr, target): low 0 high len(arr) - 1 while low high: mid (low high) // 2 if arr[mid] target: return arr[mid] elif arr[mid] target: low mid 1 else: high mid - 1 # 找到最接近的数字 if abs(arr[low] - target) abs(arr[high] - target): return arr[low] else: return arr[high] 示例用法 arr [2, 5, 8, 12, 17, 19, 22]
target 10
result binary_search_closest(arr, target)
print(最接近的数字是:, result) 这两种方法分别适用于已排序和未排序的数组。根据你的需求选择其中一种方法。