リスト内の最も近い数値の検索
ソートされていない整数のリストが与えられた場合、指定された値に最も近い数値を決定するのは一般的なプログラミングです。タスク。これを実現するには、いくつかのアプローチが存在します。
min() 関数の使用
リストがソートされていない場合、min() 関数は迅速で効率的な解決策を提供します。リスト内の各要素を考慮し、指定された数値との差の絶対値が最小のものを返します。
>>> myList = [4, 1, 88, 44, 3] >>> myNumber = 5 >>> min(myList, key=lambda x:abs(x-myNumber)) 4
二分メソッド
リストが既にソートされている場合または効率的にソートできる場合は、二分法がより効果的なアプローチです。これには O(log n) 時間がかかります。n はリスト内の要素の数です。
def takeClosest(arr, target): left = 0 right = len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return arr[mid] elif arr[mid] < target: left = mid + 1 else: right = mid - 1 if left == 0 or arr[left-1] > target: return arr[left] return arr[left-1]
min() 関数アプローチの時間計算量は O(n) ですが、二分法の時間は O(n) です。複雑さは O(log n) であり、リストが大きい場合にパフォーマンスが大幅に向上します。
以上がリスト内で最も近い数値を見つける方法: Min() と二分法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。