Үйінді сұрыптау алгоритмінің күрделілігі қандай?
Үйінді сұрыптау алгоритмінің күрделілігі қандай?

Бейне: Үйінді сұрыптау алгоритмінің күрделілігі қандай?

Бейне: Үйінді сұрыптау алгоритмінің күрделілігі қандай?
Бейне: Тұрмыстық қоқысты сұрыптау 2024, Мамыр
Anonim

Үйме сұрыптау - бұл орнындағы алгоритм. Уақыттың күрделілігі : Уақыттың күрделілігі heapify - O(Logn). Уақыттың күрделілігі createAndBuildHeap() параметрі O(n) және жалпы уақыт күрделілігі Үйме сұрыптауы O(nLogn) болып табылады.

Осыған байланысты үйме сұрыптау алгоритмі қандай?

Үйінді сұрыптау алгоритмі екі негізгі бөлікке бөлінеді: жасау а Үйме сұрыпталмаған тізім/массив. Содан кейін а сұрыпталған массив ішінен ең үлкен/ең кіші элементті қайта-қайта жою арқылы жасалады үйме , және оны массивке кірістіру. The үйме әр алып тастаудан кейін қайта құрылады.

Сол сияқты, үйме сұрыптау алгоритмінің әдеттегі жұмыс уақыты қандай? Дегенмен, жылдам сұрыптауда ең нашар жағдай бар жүгіру уақыты O (n 2) O(n^2) O(n2) және ең нашар кеңістік күрделілігі O (log ? n O(log n O(logn)), сондықтан ең жылдам жағдайдың болуы өте маңызды болса жүгіру уақыты және кеңістікті тиімді пайдалану, үйме сұрыптау ең жақсы нұсқа болып табылады.

Сол сияқты, Heapify функциясының күрделілігі қандай?

Негізгі идея - build_heap ішінде алгоритм нақты үймелеу құны барлық элементтер үшін O(log n) емес. When үймелеу деп аталады, жұмыс уақыты процесс аяқталмай тұрып, фаран элементінің ағашта қалай төмен жылжуы мүмкін екеніне байланысты. Басқаша айтқанда, бұл үймедегі элементтің биіктігіне байланысты.

Қай сұрыптау алгоритмі ең жақсы асимптотикалық күрделілікке ие?

Үшін Ең жақсы іс кірістіру Сұрыптау және үйме Сұрыптау ең жақсы бірі олардың сияқты ең жақсы істің орындалу уақыты күрделілік O(n) болып табылады. Орташа жағдай үшін ең жақсы асимптотикалық орындау уақыты күрделілік Біріктіру арқылы берілген O(nlogn). Сұрыптау , Үйме Сұрыптау , Жылдам Сұрыптау . Ең нашар жағдай үшін ең жақсы орындау уақыты күрделілік Біріктіру арқылы берілген O(nlogn). Сұрыптау , Үйме Сұрыптау.

Ұсынылған: