Bagaimana untuk Mencari Integer Terhampir dengan Nilai Diberi dalam Senarai?

Mary-Kate Olsen
Lepaskan: 2024-11-11 02:45:03
asal
874 orang telah melayarinya

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

Mencari Integer Terdekat daripada Nilai Diberi dalam Senarai

Untuk menentukan nombor dalam senarai tertentu yang paling hampir dengan nilai sasaran , terdapat beberapa pendekatan yang boleh dipertimbangkan:

Menggunakan min() Terbina Dalam Fungsi:

Jika senarai tidak diisih, fungsi min() menyediakan cara yang mudah untuk mencari elemen yang paling hampir. Ia membolehkan kami menentukan fungsi utama untuk menilai jarak dari nilai sasaran:

min(myList, key=lambda x:abs(x-myNumber))
Salin selepas log masuk

Pendekatan ini mempunyai kerumitan masa O(n), dengan n ialah panjang senarai.

Menggunakan Kaedah Pembahagian Dua (untuk Senarai Isih):

Jika senarai sudah diisih atau boleh diisih dengan cekap, kaedah pembahagian dua menawarkan penyelesaian yang lebih pantas dengan kerumitan masa O(log n). Teknik ini melibatkan berulang kali membahagikan senarai itu kepada dua dan membandingkan nilai sasaran dengan elemen tengah sehingga elemen yang paling hampir ditemui.

Membandingkan Perbezaan Mutlak:

Pendekatan lain ialah untuk lelaran melalui senarai dan mengira perbezaan mutlak antara setiap elemen dan nilai sasaran. Elemen dengan perbezaan mutlak terkecil kemudiannya dianggap paling hampir:

closest_num = None
min_diff = float('inf')
for num in myList:
    diff = abs(num - myNumber)
    if diff < min_diff:
        closest_num = num
        min_diff = diff
Salin selepas log masuk

Pendekatan ini mempunyai kerumitan masa O(n) juga.

Pilihan pendekatan bergantung kepada faktor-faktor seperti sebagai saiz senarai dan sama ada ia sudah diisih. Untuk senarai kecil atau senarai tidak diisih, fungsi min() boleh menjadi penyelesaian yang mudah. Untuk senarai besar atau disusun, kaedah pembahagian dua menawarkan kecekapan yang lebih baik.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan