Aká je zložitosť algoritmu triedenia haldy?
Aká je zložitosť algoritmu triedenia haldy?

Video: Aká je zložitosť algoritmu triedenia haldy?

Video: Aká je zložitosť algoritmu triedenia haldy?
Video: CS50 2015 - Week 9 2024, November
Anonim

Zoradenie haldy je algoritmus na mieste. Časová zložitosť : Časová zložitosť of heapify je O(Logn). Časová zložitosť z createAndBuildHeap() je O(n) a celkovo časová zložitosť Heap Sort je O(nLogn).

V súvislosti s tým, aký je algoritmus triedenia haldy?

Algoritmus triedenia haldy sa delí na dve základné časti: Tvorba a Hromada netriedeného zoznamu/pola. Potom triedené pole sa vytvára opakovaným odstraňovaním najväčšieho/najmenšieho prvku z hromada a jeho vložením do poľa. The hromada sa po každom odstránení rekonštruuje.

Podobne, aký je typický čas chodu algoritmu triedenia haldy? Rýchle triedenie má však najhorší prípad doba chodu O (n 2) O(n^2) O(n2) a priestorová zložitosť v najhoršom prípade O (log ? n O(log n O(logn), takže ak je veľmi dôležité mať rýchly najhorší prípad doba chodu a efektívne využitie priestoru, hepsort je najlepšia možnosť.

Podobne sa kladie otázka, aká je zložitosť funkcie Heapify?

Hlavnou myšlienkou je, že v build_heap algoritmus aktuálny nahromadiť sa cena nie je O(log n) pre všetky prvky. Keď nahromadiť sa Ak sa volá, čas behu závisí od toho, ako sa prvok faran môže posunúť nadol v strome pred ukončením procesu. Inými slovami, závisí od výšky prvku v halde.

Ktorý triediaci algoritmus má najlepšiu asymptotickú zložitosť?

Pre Najlepšie Vloženie puzdra Triediť a halda Triediť je najlepšie jeden ako ich najlepšie čas spustenia prípadu zložitosť je O(n). Pre priemerný prípad najlepšie asymptotické beh programu zložitosť je O(nlogn), ktoré je dané zlúčením Triediť , Hromada Triediť , Rýchlo Triediť . Pre najhorší prípad najlepšie beh programu zložitosť je O(nlogn), ktoré je dané pomocou Merge Triediť , Hromada Triediť.

Odporúča: