Acasă Finanțe personale Cum funcționează tehnica Quicksort în Java? - manechine

Cum funcționează tehnica Quicksort în Java? - manechine

Video: Algoritm pentru cautarea binara in C++ 2024

Video: Algoritm pentru cautarea binara in C++ 2024
Anonim

Aici puteți afla cum funcționează de fapt una dintre cele mai utilizate tehnici de sortare din Java. Această tehnică este numită Quicksort, și este o utilizare foarte ingenioasă a recursivității.

Pentru majoritatea dintre noi, imaginind modul în care algoritmii de sortare, cum ar fi munca Quicksort, este doar un exercițiu intelectual. API-ul Java are deja o structură de sortare.

Tehnica Quicksort sortează o serie de valori utilizând recursul. Pașii lui de bază sunt astfel:

  1. Alegeți o valoare arbitrară care se află în intervalul de valori din matrice.

    Această valoare este punctul de pivotare . Cea mai obișnuită modalitate de a alege punctul de pivotare este alegerea primei valori din matrice. Oamenii au scris grade de doctorat pe metode mai sofisticate de a alege un punct de pivotare care are ca rezultat o sortare mai rapidă. Stick cu utilizarea primului element din matrice.

  2. Rearanjați valorile din matrice astfel încât toate valorile care sunt mai mici decât punctul de pivotare să fie în partea stângă a matricei și toate valorile care sunt mai mari sau egale cu punctul de pivotare sunt în partea dreaptă a matrice.

    Valoarea pivotului indică limita dintre partea stângă și partea dreaptă a matricei. Probabil că nu va fi mort, dar nu contează. Acest pas este numit partiționare, iar părțile stângi și drepte ale array-urilor sunt partiții.

  3. Acum tratați fiecare din cele două secțiuni ale matricei ca o matrice separată și începeți cu Pasul 1 pentru acea secțiune.

    Aceasta este partea recursivă a algoritmului.

Partea cea mai grea a algoritmului Quicksort este etapa de partiționare, care trebuie să rearanjeze partiția astfel încât toate valorile care sunt mai mici decât punctul de pivotare să fie la stânga și toate elementele care sunt mai mari decât pivotul punct sunt pe dreapta. Să presupunem că matricea are aceste zece valori:

38 17 58 22 69 31 88 28 86 12

Aici punctul de pivotare este 38, iar sarcina pasului de partiționare este de a rearanja matricea la ceva de genul: 17 12 22 28 31 38 88 69 86 58

Rețineți că valorile sunt încă nefuncționale. Totuși, matricea a fost împărțită în jurul valorii de 38: Toate valorile care sunt mai mici de 38 sunt la stânga de 38 și toate valorile care sunt mai mari de 38 sunt la dreapta lui 38.

Acum puteți împărți array în două partiții la valoarea 38 și repetați procesul pentru fiecare parte. Numai pivotul merge cu partiția din stânga, astfel încât partiția stângă este aceasta:

17 12 22 28 31 38

De această dată, etapa de partiționare alege 17 ca punct de pivotare și rearanjează elementele după cum urmează: > 12 17 22 28 31 38

După cum puteți vedea, această porțiune a matricei este sortată acum.Din nefericire, Quicksort nu-și dă seama că în acest moment, deci este nevoie de câteva recursuri pentru a fi sigur. Dar acesta este procesul de bază.

Cum funcționează tehnica Quicksort în Java? - manechine

Alegerea editorilor

Cum se folosește Tweening în Fireworks CS5 - manechine

Cum se folosește Tweening în Fireworks CS5 - manechine

Tweening este furnizat ca instrument pentru animații fine de ajustare în Adobe Fireworks Creative Suite 5. Tweening este procesul de creare a unei stări între alte două, de obicei ca punct de pornire sau oprire pentru animație. Utilizați retușarea pentru a simula un obiect în mișcare, ca o minge ce se învârte sau pentru a bloca o imagine în sau în afara ...

ActionScript 3. 0 Versus ActionScript 2. 0 în Flash CS5 - manechine

ActionScript 3. 0 Versus ActionScript 2. 0 în Flash CS5 - manechine

Introducerea în Flash Player 9, ActionScript versiunea 3. 0 a adus multe schimbări și îmbunătățiri majore în ceea ce privește performanța ActionScript și modul în care a fost creat în filmele Flash. Versiunile anterioare ale ActionScript (1. 0+, 2. 0) sunt încă în uz în cadrul anumitor proiecte Flash, deci aveți opțiuni pentru crearea sau salvarea de filme ...

Adăugați culori la swatches în Flash CS5 - manechine

Adăugați culori la swatches în Flash CS5 - manechine

Folosind panoul Color Adobe Creative Suite 5, și să creați propriile swatches de culoare, să faceți gradienți și chiar să aplicați efecte de transparență culorilor existente în stadiul Flash CS5. Panoul Swatches există și pe propriul panou mobil plutitor, pe care îl puteți deschide selectând Window → Swatches. Cele 256 culori pe acest ...

Alegerea editorilor

Comutatoare vLAN și LAN și Junos OS - manechine

Comutatoare vLAN și LAN și Junos OS - manechine

Rețelele au crescut și au devenit mai rapide. Pentru flexibilitate, segmentarea fizică a dat calea segmentării logice cu VLAN-uri. Această practică creează bucăți izolate de LAN care sunt legate împreună cu un tip special de pod numit switch. Nevoia de punți VLANs reduce ...

Chestiuni legate de securitatea dispozitivelor mobile - dummy

Chestiuni legate de securitatea dispozitivelor mobile - dummy

Dispozitivele mobile, cum ar fi smartphone-urile și tabletele, și accesul oricând / oriunde la date și aplicații corporative. Această flexibilitate nu este însă fără provocările sale. Iată câteva dintre problemele legate de implementarea dispozitivelor mobile pe care trebuie să le protejați împotriva: Pierderi și furt: Acestea sunt preocupări majore, cu sute de mii ...

Ce ar trebui să știți despre actualizarea Junos - dummies

Ce ar trebui să știți despre actualizarea Junos - dummies

Un subiect esențial pentru operarea rețelei dvs. este actualizarea software-ului. Modelul de livrare a noilor versiuni Junos simplifică procesul de modernizare în comparație cu alte sisteme de rețea. Noile versiuni și numere Juniper livrează noi versiuni majore ale sistemului Junos pentru a oferi clienților noștri noi caracteristici și funcționalități de trei până la patru ori pe an. ...

Alegerea editorilor

Sănătatea < < și rușinea ascunsă - dummies

Sănătatea < < și rușinea ascunsă - dummies

ÎN mod normal, rușinea trece după un incident jenant. copilărie. Se asteapta sa fie activata si persista mult timp dupa eveniment, ca o rana deschisa care nu sa vindecat niciodata. Îți este rușine de cine ești. Totul este omniprezent, paralizează spontaneitatea și te definește. Nu credeți ...

Acceptând Realitatea atunci când Vindecarea de la Codependency - dummies

Acceptând Realitatea atunci când Vindecarea de la Codependency - dummies

Acceptarea este un proces. Nu se întâmplă într-o zi, o săptămână sau o lună, dar face eforturi și se desfășoară în pași și rânduri de bebeluși. Schimbarea începe cu conștientizarea. Observați dacă comportamentul și gândurile dvs. ating rezultatele dorite. Apoi, practici nonattachment. Acceptarea nu este aprobarea Acceptarea este o recunoaștere a ceea ce este. Există un ...

Dependența de coexistență nu este Caregiving - manechine

Dependența de coexistență nu este Caregiving - manechine

Mulți oameni, în special femei, se bucură de îngrijire și îngrijire pentru alții. Unii fac o profesie. Mamele sunt legate prin cablu pentru a se îngriji de copiii lor. Îngrijirea de tip dependent este diferită de a acorda îngrijire unei persoane. De fapt, cu dependența de codependență, poate fi mai mult decât să dai atunci când nevoile dătătorului au prioritate. Acest lucru se datorează faptului că îngrijirea ...