Видео: Нуруулдан ангилах алгоритмын нарийн төвөгтэй байдал юу вэ?
2024 Зохиолч: Lynn Donovan | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2023-12-15 23:50
Нуруулдан эрэмбэлэх нь газар дээрх алгоритм юм. Цагийн нарийн төвөгтэй байдал : Цагийн нарийн төвөгтэй байдал 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-ээр өгөгдсөн Эрэмбэлэх , Нуруулдан Эрэмбэлэх.
Зөвлөмж болгож буй:
Примийн алгоритмын цаг хугацааны нарийн төвөгтэй байдал хэд вэ?
Примийн алгоритмын цагийн нарийн төвөгтэй байдал нь O ((V + E) l o g V) учир орой бүрийг тэргүүлэх эгнээнд зөвхөн нэг удаа оруулж, тэргүүлэх эгнээнд оруулахад логарифмын хугацаа зарцуулдаг
Холбогдсон жагсаалтын элементүүдийн тоог тоолоход цаг хугацааны нарийн төвөгтэй байдал юу вэ?
Холбогдсон жагсаалтын элементүүдийн тоог тоолоход цаг хугацааны нарийн төвөгтэй байдал юу вэ? Тайлбар: Элементүүдийн тоог тоолохын тулд та бүхэл бүтэн жагсаалтыг туулах хэрэгтэй, тиймээс нарийн төвөгтэй байдал нь O(n) байна
Дийкстрагийн алгоритмын нарийн төвөгтэй байдал юу вэ?
Дийкстрагийн алгоритмын цаг хугацааны нарийн төвөгтэй байдал нь O (V 2) боловч хамгийн чухал дараалалтай үед энэ нь O (V + E l o g V) болж буурдаг
Хоёртын хайлтын модны хамгийн муу тохиолдол ба дундаж тохиолдлын нарийн төвөгтэй байдал юу вэ?
Хоёртын хайлтын мод Алгоритм Дундаж Хамгийн муу тохиолдол Зай O(n) O(n) Хайх O(log n) O(n) Insert O(log n) O(n) Устгах O(log n) O(n)
Стек түлхэх ажиллагааны цаг хугацааны нарийн төвөгтэй байдал юу вэ?
Бүх стандарт стек үйлдлийн хувьд (push, pop, isEmpty, size) хамгийн муу тохиолдолд ажиллах үеийн нарийн төвөгтэй байдал нь O(1) байж болно. Бид чадаж байна, үгүй гэж хэлдэг нь үр ашиггүй суурь дүрслэл бүхий стекүүдийг хэрэгжүүлэх боломжтой байдаг