Kāda ir kaudzes kārtošanas algoritma sarežģītība?
Kāda ir kaudzes kārtošanas algoritma sarežģītība?

Video: Kāda ir kaudzes kārtošanas algoritma sarežģītība?

Video: Kāda ir kaudzes kārtošanas algoritma sarežģītība?
Video: CS50 2013 - Week 4 2024, Maijs
Anonim

Kaudzes kārtošana ir iebūvēts algoritms. Laika sarežģītība : Laika sarežģītība no heapify ir O(Logn). Laika sarežģītība no createAndBuildHeap() ir O(n) un kopumā laika sarežģītība no kaudzes kārtošanas ir O(nLogn).

Attiecībā uz to, kāds ir kaudzes kārtošanas algoritms?

Kaudzes kārtošanas algoritms ir sadalīta divās pamatdaļās: Radīt a Kaudze no nešķirotā saraksta/masīva. Tad a sakārtoti masīvs tiek izveidots, atkārtoti noņemot lielāko/mazāko elementu no kaudze un ievietojot to masīvā. The kaudze tiek rekonstruēts pēc katras noņemšanas.

Līdzīgi, kāds ir tipiskais kaudzes kārtošanas algoritma darbības laiks? Tomēr ātrajai šķirošanai ir sliktākais gadījums darbības laiks no O (n 2) O(n^ 2) O(n2) un sliktākā gadījuma telpas sarežģītība O (log ? n O(log n O(logn), tāpēc, ja ir ļoti svarīgi, lai būtu ātrākais sliktākais gadījums) darbības laiks un efektīva telpas izmantošana, kaudze šķirot ir labākais variants.

Līdzīgi tiek jautāts, kāda ir Heapify funkcijas sarežģītība?

Galvenā ideja ir tāda, ka build_heap algoritms īstais kuplot izmaksas nav O(log n) visiem elementiem. Kad kuplot tiek izsaukts, darbības laiks ir atkarīgs no tā, cik farāna elements var pārvietoties uz leju kokā pirms procesa beigām. Citiem vārdiem sakot, tas ir atkarīgs no elementa augstuma kaudzē.

Kuram šķirošanas algoritmam ir vislabākā asimptotiskā sarežģītība?

Priekš Labākais lietas ievietošana Kārtot un Kaudze Kārtot ir labākie viens kā viņu labākais lietas izpildes laiks sarežģītība ir O(n). Vidējam gadījumam labākais asimptotisks darbības laiks sarežģītība ir O(nlogn), ko piešķir Merge Kārtot , Kaudze Kārtot , Ātri Kārtot . Sliktākajam gadījumam labākais darbības laiks sarežģītība ir O(nlogn), ko nodrošina sapludināšana Kārtot , Kaudze Kārtot.

Ieteicams: