整数のリストから最も近い数値を見つけるにはどうすればよいですか?

DDD
リリース: 2024-11-09 05:11:01
オリジナル
847 人が閲覧しました

How to Find the Closest Number in a List of Integers?

整数のリスト内の指定された値に最も近い数値を見つける

整数のリストがあり、どの数値を特定したいとします。は指定された値に最も近いです。これを実現するには、さまざまな方法を使用できます。

ソートされていないリストに対する min() 関数の使用:

リストがソートされていることを保証できない場合は、組み込みの min() 関数。キー関数を使用して、指定された数値からの距離が最小の要素を選択します。

>>> min(myList, key=lambda x:abs(x-myNumber))
4
ログイン後にコピー

このメソッドは、O(n) 時間の計算量で最も近い数値を効率的に見つけます。

ソートされたリストに二分法を使用する:

リストがすでにソートされている場合、またはリストをソートしたい場合一度、二分法を使用できます。この方法では、時間計算量が O(log n) に軽減されます。ただし、リストが既にソートされているかどうかを確認するには O(n) が必要で、ソート自体には O(n log n) が必要です。

>>> low, high = 0, len(myList) - 1
>>> while low <= high:
>>>     mid = (low + high) // 2
>>>     if myList[mid] == myNumber:
>>>         return myList[mid]
>>>     elif myList[mid] > myNumber:
>>>         high = mid - 1
>>>     else:
>>>         low = mid + 1
>>>     if low > high:
>>>         closest = myList[high] if abs(myList[high] - myNumber) < abs(myList[low] - myNumber) else myList[low]
>>>         return closest
ログイン後にコピー

最も近い要素を選択することにより、このメソッドはソートされたリストに最適なソリューションを提供します。 .

以上が整数のリストから最も近い数値を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート