Algoritma Carian

WBOY
Lepaskan: 2024-07-19 00:46:50
asal
1079 orang telah melayarinya

Search Algorithms

Memahami Carian Binari dalam PHP

Carian binari ialah algoritma yang lebih cekap untuk mencari elemen dalam tatasusunan yang diisih. Ia berfungsi dengan membahagikan selang carian berulang kali kepada separuh. Berikut ialah pecahan terperinci fungsi Carian binari anda:

function binarySearch(array $arr, float|int $x) { $low = 0; $high = count($arr)-1; // $midIndex = (int) ($low + ($high - $low)/2); $i = 0; while($low <= $high){ $i++; $midIndex = (int) ($low + (($high - $low)/2)); //the same as intdiv($low + $high, 2); if($arr[$midIndex] == $x){ return "The number {$x} was found in index {$midIndex} of the array. The number of iteration was {$i}"; }elseif($x > $arr[$midIndex]){ $low = $midIndex +1; echo $low."\n"; }else{ $high = $midIndex - 1; } } return "The number {$x} was not found in the array"; } echo binarySearch([1,2,3,4,5,6,7,8,9,10,44,45,46,47,48,49,50], 45)
Salin selepas log masuk

Fungsi binarySearch menerima dua parameter:

  1. $arr: Tatasusunan integer yang diisih.
  2. $x: Nombor yang hendak dicari, yang boleh menjadi apungan atau integer.
  3. $low dimulakan ke indeks pertama tatasusunan.
  4. $high dimulakan ke indeks terakhir tatasusunan.
  5. $i ialah kaunter untuk menjejaki bilangan lelaran.
  6. Gelung sementara berjalan selagi selang carian sah ($rendah kurang daripada atau sama dengan $tinggi).
  7. $midIndex dikira sebagai indeks tengah selang semasa.
  8. Jika elemen tengah sama dengan $x, fungsi mengembalikan indeks dan bilangan lelaran.
  9. Jika $x lebih besar daripada elemen tengah, laraskan $rendah kepada midIndex + 1 (kecilkan carian ke bahagian atas).
  10. Jika $x kurang daripada elemen tengah, laraskan $high ke midIndex - 1 (kecilkan carian ke bahagian bawah).

Memahami Carian Linear dalam PHP

Carian linear ialah salah satu algoritma carian paling mudah digunakan untuk mencari elemen tertentu dalam tatasusunan. Mari kita pecahkan fungsi linearSearch dalam PHP.

function linearSearch(array $arr, float|int $x) { for($i=0; $i < count($arr); $i++){ if($x === $arr[$i]){ return "The number {$x} was found in index {$i} of the array\n"; } } return "The number {$x} was not found in the array\n"; } echo linearSearch([1,5,6,3,4,11,3,2], 4);
Salin selepas log masuk

Fungsi linearSearch menerima dua parameter:

  1. $arr: Tatasusunan integer.
  2. $x: Nombor yang hendak dicari, yang boleh menjadi apungan atau integer.
  3. Gelung for berulang pada setiap elemen tatasusunan. Fungsi count($arr) mengembalikan bilangan elemen dalam tatasusunan.
  4. Di dalam gelung, kod menyemak sama ada elemen semasa ($arr[$i]) bersamaan dengan $x. Jika padanan ditemui, ia mengembalikan mesej yang menunjukkan indeks di mana nombor itu ditemui.
  5. Jika gelung selesai tanpa mencari nombor, fungsi mengembalikan mesej yang menunjukkan bahawa nombor itu tidak ditemui dalam tatasusunan.
  6. Carian linear adalah mudah dan mudah untuk dilaksanakan. Ia secara berurutan menyemak setiap elemen tatasusunan sehingga elemen yang dikehendaki ditemui atau penghujung tatasusunan dicapai. Pendekatan ini mudah tetapi boleh menjadi tidak cekap untuk tatasusunan yang besar, kerana ia mempunyai kerumitan masa O(n).

Atas ialah kandungan terperinci Algoritma Carian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!