如何在整數列表中找到最接近的數字?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板