Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencari Nombor Terhampir dalam Senarai dengan Nilai Diberi?

Bagaimana untuk Mencari Nombor Terhampir dalam Senarai dengan Nilai Diberi?

Barbara Streisand
Barbara Streisandasal
2024-11-11 06:24:02725semak imbas

How to Find the Closest Number in a List to a Given Value?

Mencari Nombor Terhampir dalam Senarai dengan Nilai Diberi

Memandangkan senarai integer, anda mungkin perlu menentukan nombor mana yang paling hampir kepada nilai yang diberikan. Tugas ini boleh ditangani dengan cekap menggunakan kaedah berikut:

Senarai Tidak Diisih:

Jika senarai input tidak diisih, anda boleh menggunakan fungsi min() terbina dalam dengan hujah utama. Ini membolehkan anda mencari elemen dengan perbezaan mutlak minimum daripada nilai sasaran.

>>> myList = [4, 1, 88, 44, 3]
>>> myNumber = 5
>>> min(myList, key=lambda x: abs(x - myNumber))
4

Kaedah ini mengambil masa O(n) kerana ia berulang melalui keseluruhan senarai.

Senarai Isih:

Sebagai alternatif, jika senarai sudah diisih atau anda sanggup mengisihnya sekali, anda boleh menggunakan kaedah belah dua. Teknik ini menggunakan carian binari untuk mencari titik sisipan nilai sasaran, dengan berkesan mencari elemen terdekat dalam masa O(log n). Berikut ialah contoh pelaksanaan menggunakan modul dua belah Python:

>>> from bisect import bisect_left
>>> myList = sorted([4, 1, 88, 44, 3])
>>> myNumber = 5
>>> bisect_left(myList, myNumber)
2
>>> myList[2]
4

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nombor Terhampir dalam Senarai dengan Nilai Diberi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn