Înțelegerea complexității timp și spațiu a algoritmilor ajută la evaluarea eficienței lor. Combinați sortarea și sortarea rapidă sunt doi algoritmi populari de sortare cu caracteristici de performanță diferite. Acest articol explică modul în care să calculeze complexitatea lor.

Îmbină complexitatea sortării

Se combină sortul de separare a matricei în jumătăţi recursiv până când fiecare subarray conţine un singur element. Procesul de fuziune apoi combină aceste subarray-uri în ordine sortate.

Complexitatea temporală a unui fel de fuziune este O(n log n)] în cele mai bune, medii și cele mai grave cazuri, deoarece împarte constant matricea și o unește eficient.

Complexitatea spaţială este O(n) din cauza necesităţii de array-uri temporare în timpul procesului de fuzionare.

Complexitate rapidă de sortare

Sort rapid selectează un element pivot și împarte matricea în subarray-uri care sunt mai mici sau mai mari decât pivotul. Acest proces este repetat recursiv.

Complexitatea medie a timpului este O [n log n), dar în cel mai rău caz, cum ar fi atunci când cel mai mic sau mai mare element este ales întotdeauna ca pivot, se degradează la O(n^2).

Complexitatea spaţiului pentru sortare rapidă este în general O(log n) datorită spaţiului stivă recursiv, dar poate fi mai mare în funcţie de implementare.

Rezumatul complexităților

  • Se combină Sort - Timp: O(n log n), Space: O(n)]
  • Sortare rapidă - timp: [O [n log n], cel mai rău O(n^2), Space: O(log n)]