Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Cekap Mencari Nilai Terdekat dalam Tatasusunan Tertib?

Bagaimana untuk Cekap Mencari Nilai Terdekat dalam Tatasusunan Tertib?

Barbara Streisand
Lepaskan: 2024-11-25 18:06:11
asal
280 orang telah melayarinya

How to Efficiently Find the Closest Value in an Ordered Array?

Mencari Nilai Terhampir dalam Tatasusunan

Dalam pemprosesan data, mencari nilai padanan terdekat dalam tatasusunan selalunya penting untuk pelbagai aplikasi. Memandangkan nilai sasaran dan tatasusunan tersusun, bagaimanakah kita boleh mengesan elemen yang paling hampir dengan sasaran dengan cekap?

Penyelesaian:

Untuk mencari nilai terdekat dalam tatasusunan, kita boleh lelaran melalui setiap elemen dalam tatasusunan dan mengira perbezaan antara nilai sasaran dan setiap elemen. Elemen dengan perbezaan terkecil ialah nilai padanan yang paling hampir. Berikut ialah fungsi PHP untuk tugasan ini:

function getClosest($search, $arr) {
   $closest = null;
   foreach ($arr as $item) {
      if ($closest === null || abs($search - $closest) > abs($item - $search)) {
         $closest = $item;
      }
   }
   return $closest;
}
Salin selepas log masuk

Fungsi ini mengambil dua parameter: nilai sasaran untuk dicari dan tatasusunan nombor untuk dicari di dalamnya. Ia mengira perbezaan mutlak antara nilai sasaran dan setiap elemen dalam tatasusunan. Elemen dengan perbezaan mutlak terkecil disimpan dalam pembolehubah $closst dan akhirnya dikembalikan sebagai hasilnya.

Penggunaan:

Pertimbangkan tatasusunan berikut:

array(0, 5, 10, 11, 12, 20)
Salin selepas log masuk

Apabila mencari dengan nilai sasaran 0, fungsi akan mengembalikan 0. Untuk nilai sasaran 3, fungsi akan kembali 5. Begitu juga, untuk nilai sasaran 14, fungsi akan mengembalikan 12.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Nilai Terdekat dalam Tatasusunan Tertib?. 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