Binære søk i PHP

Kommentarer

En ting er sikkert, funksjonen in_array er PHP treg, for treg.

Det er et alternativ til forskning om elementet i matrisen kalles "binær søk", som for øvrig, uansett hvilket språk du bruker, ideene er de samme. Konseptet er enkelt, se om elementet er midt i matrisen, hvis ikke, kutt den i to, se om det er halvparten, hvis ikke, kuttet halvt i to, Ad Infinitum, eller til det siste.

Tenk deg at du må se opp navnet "Julio Nobrega" i telefonboken. Gå til element element og se om hver term er ensbetydende med galskap. Kom igjen, åpner du listen i midten og se hva navnet, hvis han Julio Nobrega, Pronto. Hvis ikke, er navnet som er i midten, høyere eller lavere enn ord vår? Hvis den er større, brudd i halvparten av listen og se på den første delen. Vi eliminerer 50% av der vi ser etter i en smekk. Gjenta dette, og søket rommet synker til bare om søkeordet. Mye bedre enn ett, ett.

Der går funksjonen:

PHP:
  1. $elemento , $matriz ) procura_binaria funksjon ($ element, $ array)
  2. (
  3. ; $ Lav = 0;
  4. ( $matriz ) - 1 ; $ Høy = sizeof ($ array) - 1;
  5. $baixo <= $alto ) { mens ($ lavt <= $ høy) (
  6. ( ( $baixo + $alto ) / 2 ) ; $ Midt = floor (($ lavt + $ høy) / 2);
  7. $elemento == $matriz [ $meio ] ) { if ($ element == $ array [$ midt]) (
  8. [ $meio ] ; returnere $ array [$ midt];
  9. { Else ()
  10. $elemento < $matriz [ $meio ] ) { if ($ element <$ array [$ midt]) (
  11. - 1 ; $ Topp = $ midten - 1;
  12. { Else ()
  13. + 1 ; $ Bunn = $ midt + 1;
  14. )
  15. )
  16. )
  17. ; // Não achou! return false; / / ikke funnet!
  18. )

Bruk er et blunk:

PHP:
  1. !pesquisa_binaria ( $termo , $matriz ) ) { if (! pesquisa_binaria ($ sikt, $ array)) (
  2. ; echo "Ikke funnet!";
  3. )

  • inerte
    Ja, heh:) Jeg glemte å nevne den slags.

    Som for matrisen, matrise, vektor, liste, ordbok, bord, noen ganger får jeg forvirret alt: p du er helt korrekt.

    I ettertid har min skrive syndet i disse feilene .. takk for advarsler!
  • in_array Ã¥ finne elementet selv om matrisen ikke er bestilt ... hvis du trenger Ã¥ bestille matrisen før, ikke betale for Ã¥ bruke de binære søk ...

    oh, og blir irriterende: matrisen er riktig eller vektor ... matrise har to dimensjoner:)
Bloggen kommentarer drevet av Disqus

Português flagItaliano flagCoreano flagChinês (simplificado) flagEnglish flagAlemâo flagFrancês flagEspanhol flag
Japonês flagÁrabe flagRusso flagHolandês flagBúlgaro flagTcheco flagCroata flagDinamarquês flag
Finlandês flagHindu flagPolonês flagRomeno flagSueco flagGrego flagNorueguês flag 
By N2H
Dolet 96 rabatt på hosting Dreamhost!
Bruk "Fremme Koden" treghet. LAMP med 20GB plass og 1TB av overføringen.

Relaterte artikler

  • Ingen relaterte innlegg

Kategorier