Video: Algoritm pentru cautarea binara in C++ 2024
Una dintre tehnicile de sortare cele mai utilizate în Java se numește tehnica Quicksort. Este o modalitate excelentă de a face față recursivității. Codul real care conduce o rutină Quicksort este surprinzător de simplu:
public static void sort (int scăzut, int ridicat) {if (low> = high) retur; int p = partiție (joasă, înaltă); sortare (scăzut, p); sortați (p + 1, înaltă);}
Această metodă sortează porțiunea unei matrice indicată de valorile indexului scăzut și ridicat care au fost transmise acesteia. Dacă ignorăm instrucțiunea if pentru moment, metoda de sortare funcționează apelând o metodă de partiție. Această metodă rearanjează matricea în două partiții astfel încât toate valorile din partiția stângă să fie mai mici decât toate valorile din partiția corectă.
Metoda partiției returnează indexul sfârșitului partiției din stânga. Apoi, metoda de sortare se conectează de două ori: o dată pentru a sorta partiția din stânga și din nou pentru a sorta partiția corectă.
Pentru a începe procesul de sortare, îl numiți cu valoarea 0 ca valoare mică și lungimea matricei și 1 ca valoare mare. Astfel, metoda de sortare începe prin sortarea întreagă matrice. De fiecare dată când metoda de sortare se execută, se cheamă de două ori pentru a sorta partițiile mai mici ale matricei.
Instrucțiunea if la începutul metodei de sortare compară valoarea mică cu valoarea mare. Dacă valoarea mică este egală sau mai mare decât valoarea mare, partiția are doar un element (sau poate nu există elemente) și, prin urmare, este deja sortată. În acest caz, metoda de sortare se întoarce pur și simplu fără să se mai apeleze din nou. Aceasta este condiția care încheie recursiunea.