Нуруулдан ангилах алгоритмын нарийн төвөгтэй байдал юу вэ?
Нуруулдан ангилах алгоритмын нарийн төвөгтэй байдал юу вэ?

Видео: Нуруулдан ангилах алгоритмын нарийн төвөгтэй байдал юу вэ?

Видео: Нуруулдан ангилах алгоритмын нарийн төвөгтэй байдал юу вэ?
Видео: Нуруулдан алгоритм бүтээх | O(N) цагийн нарийн төвөгтэй байдлын баталгаа 2024, Арванхоёрдугаар сар
Anonim

Нуруулдан эрэмбэлэх нь газар дээрх алгоритм юм. Цагийн нарийн төвөгтэй байдал : Цагийн нарийн төвөгтэй байдал heapify нь O(Logn) юм. Цагийн нарийн төвөгтэй байдал createAndBuildHeap() нь O(n) ба ерөнхийдөө байна цаг хугацааны нарийн төвөгтэй байдал Нуруулдан ангилах нь O(nLogn) юм.

Үүнтэй холбогдуулан нуруулдан ангилах алгоритм нь юу вэ?

Нуруулдан эрэмбэлэх алгоритм гэсэн хоёр үндсэн хэсэгт хуваагдана: Үүсгэх a Бөөн эрэмблэгдээгүй жагсаалт/массив. Дараа нь а эрэмбэлсэн массив нь хамгийн том/жижиг элементийг дахин дахин устгаснаар үүсдэг овоо , мөн массив руу оруулах. The овоо зайлуулах болгоны дараа дахин сэргээдэг.

Үүнтэй адилаар, нуруулдан эрэмбэлэх алгоритмын ердийн ажиллах хугацаа хэд вэ? Гэсэн хэдий ч Quicksort нь хамгийн муу тохиолдолтой байдаг ажиллах хугацаа O (n 2) O(n^2) O(n2) ба хамгийн муу орон зайн нарийн төвөгтэй байдал нь O (log ? n O(log n O(logn)), тиймээс хэрэв энэ нь маш чухал бол хамгийн хурдан муу тохиолдол байх нь ажиллах хугацаа орон зайг үр ашигтай ашиглах, heapsort хамгийн сайн сонголт юм.

Үүнтэй адилаар Heapify функцийн нарийн төвөгтэй байдал юу вэ?

Гол санаа нь build_heap дотор байгаа юм алгоритм бодит бөөгнөрөх зардал нь бүх элементийн хувьд O(log n) биш. Хэзээ бөөгнөрөх гэж нэрлэдэг бөгөөд ажиллах хугацаа нь процесс дуусахаас өмнө фаран элемент хэрхэн мод уруу хөдөлж байгаагаас хамаарна. Өөрөөр хэлбэл, энэ нь овоолгын элементийн өндрөөс хамаарна.

Аль эрэмбэлэх алгоритм нь хамгийн сайн асимптот нарийн төвөгтэй байдаг вэ?

Учир нь Хамгийн сайн тохиолдол оруулах Эрэмбэлэх болон нуруулдан Ангилах нь Шилдэг нэг нь тэднийх хамгийн сайн хэргийг ажиллуулах хугацаа нарийн төвөгтэй байдал O(n) байна. Дундаж тохиолдолд хамгийн сайн асимптотик ажиллах хугацаа нарийн төвөгтэй байдал нь Merge-ээр өгөгдсөн O(nlogn) юм Эрэмбэлэх , Нуруулдан Эрэмбэлэх , Хурдан Эрэмбэлэх . Хамгийн муу тохиолдолд хамгийн сайн ажиллах хугацаа нарийн төвөгтэй байдал нь O(nlogn) нь Merge-ээр өгөгдсөн Эрэмбэлэх , Нуруулдан Эрэмбэлэх.

Зөвлөмж болгож буй: