Developer Toolbox

Quicksort

Alege o valoare, pivotul, și mută valorile mai mici în stânga lui și pe cele mai mari în dreapta. Apoi face la fel cu fiecare parte.

  • Ω(n log n)
  • Θ(n log n)
  • O(n²)
  • O(log n)
  • nu
  • da
  • comparare
  • mutare
  • pivot
  • pe poziția finală
0 / 187 pași

Adâncimea recursivității: 0 · minimă posibilă: 4 · cel mai rău caz: 23 își așteaptă pivotul

Comparații Schimbări

Apasă pe redare: liniile arată cum crește costul în timpul sortării

Apasă pe redare sau parcurge algoritmul pas cu pas.

Space: redă sau pauză. Săgețile stânga și dreapta: pas cu pas. Home și End: salt.

Încearcă: Alege o listă inversată. Pivotul e mereu cea mai mică sau cea mai mare valoare rămasă, deci o parte e mereu goală și costul urcă spre n².

Cum funcționează

Aici pivotul e ultima valoare din interval. De la stânga la dreapta, fiecare valoare care nu e mai mare decât pivotul e mutată prin schimbare în partea stângă. Apoi pivotul ajunge între cele două părți, unde rămâne definitiv. Fiecare parte e sortată apoi la fel.

Când este o alegere bună

Unul dintre cele mai rapide moduri de sortare în practică, și aproape nu folosește memorie suplimentară. Dar dacă alege mereu un pivot prost, de exemplu pe o listă deja sortată, devine lent. Versiunile reale aleg pivotul cu mai multă grijă.