在整數列表中找到最接近給定值的數字
假設我們有一個整數列表並想要確定哪個數字最接近給定值。我們可以採用各種方法來實現這一點。
對未排序清單使用 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中文網其他相關文章!