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!