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

Нуруулдан эрэмбэлэх

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

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

Мөн асимптотик ажиллах үеийн нарийн төвөгтэй байдал гэж юу вэ? асимптотик цаг нарийн төвөгтэй байдал . (тодорхойлолт) Тодорхойлолт: Асуудлын хэмжээ хязгааргүй болох үед алгоритмын гүйцэтгэлийн хугацааг хязгаарлах үйлдэл. Үүнийг ихэвчлэн big-O тэмдэглэгээгээр тэмдэглэдэг. Мөн үзнэ үү асимптотик зай нарийн төвөгтэй байдал.

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

Түргэн эрэмбэлэх

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

Бүх эрэмбэлэх алгоритмын цаг хугацааны нарийн төвөгтэй байдал

Алгоритм Цаг хугацааны нарийн төвөгтэй байдал
Хамгийн сайн Хамгийн муу
Бөмбөлөг эрэмбэлэх Ω(n) O(n^2)
Оруулах эрэмбэ Ω(n) O(n^2)
Нуруулдан эрэмбэлэх Ω(n log(n)) O(n log(n))

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