整数のリスト内の指定された値に最も近い数値を見つける
整数のリストがあり、どの数値を特定したいとします。は指定された値に最も近いです。これを実現するには、さまざまな方法を使用できます。
ソートされていないリストに対する 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 サイトの他の関連記事を参照してください。