PHP二分查找算法示例【递归与非递归方法】
本文实例讲述了PHP二分查找算法。分享给大家供大家参考,具体如下:
binarySearch
二分查找采用的方法比较容易理解,以数组为例:
① 先取数组中间的值floor((low+top)/2),
② 然后通过与所需查找的数字进行比较,若比中间值大,则将首值替换为中间位置下一个位置,继续第一步的操作;若比中间值小,则将尾值替换为中间位置上一个位置,继续第一步操作
③ 重复第二步操作直至找出目标数字
比如从1,3,9,23,54 中查找数字23,
首位置为0, 尾位置为4,中间位置就为2 值为9,比23小,则首位置更新为2+1即3;那么接下来中间位置就为(3+4)/2=3,值为23,比较相等即找到
// 非递归算法: // $target是要查找的目标 $arr是已经排序好的数组 function binary(&$arr,$low,$top,$target){ while($low <= $top){ //由于php取商是有小数的,所以向下取整,不过也可不加,数组也会取整 $mid = floor(($low+$top)/2); echo $mid."<br>"; if($arr[$mid]==$target){ return $arr[$mid]; }elseif($arr[$mid]<$target){ $low = $mid+1; }else{ $top = $mid-1; } } return -1; }
// 递归算法: function binaryRecursive(&$arr,$low,$top,$target){ if($low<=$top){ $mid = floor(($low+$top)/2); if($mid==$target){ return $arr[$mid]; }elseif($arr[$mid]<$target){ return binaryRecursive($arr,$mid+1,$top,$target); }else{ return binaryRecursive($arr,$low,$top-1,$target); } }else{ return -1; } }
希望本文所述对大家PHP程序设计有所帮助。
更多PHP二分查找算法示例【递归与非递归方法】相关文章请关注PHP中文网!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan C# untuk menulis algoritma carian binari Algoritma carian binari ialah algoritma carian yang cekap yang mencari kedudukan elemen tertentu dalam tatasusunan tertib, dengan kerumitan masa O(logN). Dalam C#, kita boleh menulis algoritma carian binari melalui langkah-langkah berikut. Langkah 1: Sediakan data Mula-mula, kita perlu menyediakan tatasusunan yang diisih sebagai data sasaran untuk carian. Katakan kita ingin mencari kedudukan elemen tertentu dalam tatasusunan. int[]data={1,3,5,7,9,11,13

Kami tahu bahawa kaedah carian binari adalah algoritma pengisihan yang paling sesuai dan berkesan. Algoritma ini berfungsi pada urutan yang disusun. Algoritmanya mudah, ia hanya mencari elemen dari tengah, kemudian membahagikan senarai kepada dua bahagian dan bergerak ke subsenarai kiri atau subsenarai kanan. Kami tahu algoritmanya. Sekarang kita akan melihat cara menggunakan teknik carian binari dalam persekitaran berbilang benang. Bilangan benang bergantung pada bilangan teras yang terdapat dalam sistem. Mari kita lihat kod untuk mendapatkan idea. Contoh#include<iostream>#defineMAX16#defineMAX_THREAD4usingnamespacestd;//placearr,keyandothervariabl

Bahasa pengaturcaraan C menyediakan dua teknik carian. Mereka adalah seperti berikut: Carian Linear Carian Perduaan Carian Perduaan Kaedah ini hanya sesuai untuk senarai tersusun. Senarai yang diberikan dibahagikan kepada dua bahagian yang sama. Kunci yang diberikan dibandingkan dengan elemen tengah senarai. Di sini, tiga perkara boleh berlaku, seperti berikut: Jika elemen tengah sepadan dengan kata kunci, carian akan berakhir dengan jayanya di sini Jika elemen tengah lebih besar daripada kata kunci, carian akan berlaku di bahagian kiri. Jika elemen tengah lebih kecil daripada kata kunci, carian akan dilakukan pada partition kanan. Input(i/p) - senarai elemen, kata kunci yang tidak diisih. Output (o/p)-kejayaan-jika gagal mencari kata kunci-jika tidak kekunci=20pertengahan=(rendah+tinggi)/2 Program 1 Berikut ialah penggunaan carian binari dalam

Bagaimana untuk melaksanakan algoritma carian binari menggunakan Python? Algoritma carian binari, juga dikenali sebagai algoritma carian binari, ialah algoritma carian yang cekap. Ia berfungsi pada tatasusunan atau senarai tersusun, mengecilkan carian dengan membandingkan nilai sasaran kepada elemen di tengah tatasusunan. Berikut akan memperkenalkan cara melaksanakan algoritma carian binari dalam Python dan memberikan contoh kod khusus. Idea algoritma: Bandingkan nilai sasaran dengan elemen di tengah tatasusunan jika ia sama, kembalikan kedudukan elemen jika nilai sasaran lebih besar daripada elemen di tengah, kemudian di sebelah kanan;

Cara menggunakan Java untuk melaksanakan algoritma carian binari Algoritma carian binari ialah kaedah carian yang cekap sesuai untuk tatasusunan yang disusun. Idea asasnya adalah untuk terus menyempitkan julat carian, membandingkan nilai carian dengan elemen di tengah tatasusunan dan memutuskan sama ada untuk meneruskan carian separuh kiri atau separuh kanan berdasarkan hasil perbandingan sehingga elemen sasaran ditemui atau julat carian dikurangkan kepada kosong. Di bawah ini kami akan memperkenalkan secara terperinci bagaimana untuk melaksanakan algoritma carian binari di Jawa. Langkah 1: Laksanakan kaedah carian binari publicclassBinarySearch

Punca kubus ialah nilai integer yang, apabila didarab dengan sendirinya tiga kali berturut-turut, menghasilkan nilai asal. Dalam artikel ini, kami akan menulis program Java yang menggunakan carian binari untuk mencari punca kubus nombor. Mencari punca kubus nombor ialah aplikasi algoritma carian binari. Dalam artikel ini, kami akan membincangkan secara terperinci cara menggunakan carian binari untuk mengira punca kubus. Contoh input-output Contoh-1:Input:64Output:4 Contohnya, punca kubus bagi 64 ialah 4, dan output ialah 4. Contoh-2:Input:216Output:6 Contohnya, punca kubus bagi 216 ialah 6, dan keluarannya ialah 6. Carian Binari Carian binari ialah algoritma yang digunakan untuk mencari elemen (iaitu kunci dalam tatasusunan yang diisih). Algoritma Perduaan Berfungsi

Dalam masalah ini, kita diberikan tatasusunan nombor rasional yang disusun. Kita perlu menggunakan algoritma carian binari untuk mencari elemen tertentu bagi susunan nombor rasional ini tanpa menggunakan operasi titik terapung. Nombor rasional ialah nombor yang dinyatakan dalam bentuk p/q, di mana p dan q adalah kedua-dua integer. Contohnya, ⅔, ⅕. Carian binari ialah teknik carian yang mencari elemen dengan melihat di tengah-tengah tatasusunan. Digunakan untuk mencari elemen dalam tatasusunan nombor rasional yang diisih menggunakan carian binari, di mana operasi titik terapung tidak dibenarkan. Kami akan membandingkan pengangka dan penyebut untuk mengetahui unsur mana yang lebih besar atau unsur mana yang akan dijumpai. Contoh Mari buat atur cara untuk ini, #include<stdio.h>structRational{ &am

Analisis algoritma PHP: Bagaimana untuk menggunakan algoritma carian binari untuk mencari elemen dalam tatasusunan tertib dengan cepat? Gambaran Keseluruhan: Algoritma carian binari ialah algoritma carian yang cekap yang sesuai untuk mencari elemen tertentu dalam tatasusunan tertib. Artikel ini akan memperkenalkan prinsip algoritma carian binari secara terperinci dan memberikan contoh kod PHP. Prinsip: Algoritma carian binari dengan cepat mencari elemen sasaran dengan berulang kali mengurangkan julat carian sebanyak separuh. Prosesnya adalah seperti berikut: pertama, sempitkan julat carian ke permulaan dan penghujung tatasusunan kemudian, hitung indeks elemen tengah dan bandingkan dengan elemen sasaran;
