Хувинаар ангилах алгоритм байгаа юу?
Хувинаар ангилах алгоритм байгаа юу?

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

Видео: Хувинаар ангилах алгоритм байгаа юу?
Видео: хувин ангилах | GeeksforGeeks 2024, Арваннэгдүгээр
Anonim

Үгүй ээ, энэ нь дотогшоо биш газар ангилах алгоритм . Бүх санаа нь тэр орц юм төрөл руу нүүж байхдаа өөрсдөө хувин . Хамгийн муу тохиолдолд (дараалсан утгууд, гэхдээ дахин давтагдахгүй) шаардлагатай нэмэлт зай нь анхны массив шиг том байна.

Ийм байдлаар ямар эрэмбэлэх алгоритмууд хэрэгжиж байна вэ?

Өөр нэг жишээ болгон, олон эрэмбэлэх алгоритмууд массивуудыг эрэмбэлсэн дарааллаар нь өөрчилдөг, үүнд: хөөс ангилах , самнах, сонгох ангилах, оруулах төрөл , heapsort, Shell сорт. Эдгээр алгоритмууд нь хэдхэн заагч шаарддаг тул тэдгээрийн орон зайн нарийн төвөгтэй байдал нь O(log n) юм. Quicksort нь эрэмбэлэх өгөгдөл дээр газар дээр нь ажилладаг.

Дараа нь, хувин ангилах алгоритм хэрхэн ажилладаг вэ гэсэн асуулт гарч ирнэ. Шанаганы төрөл , эсвэл савны төрөл , нь ангилах алгоритм тэр ажилладаг массивын элементүүдийг хэд хэдэн тоонд хуваарилах замаар хувин . Тус бүр хувин тэгвэл байна эрэмбэлсэн тус тусад нь, эсвэл өөр ашиглаж байна ангилах алгоритм , эсвэл рекурсив хэрэглэх замаар хувин ангилах алгоритм . Эхэндээ хоосон массивыг тохируулах " хувин ".

Үүний дагуу хувингаар ангилах алгоритмыг хэрхэн хэрэгжүүлэх вэ?

  1. Оролтын массив нь: 10 хэмжээтэй массив үүсгэнэ гэж бодъё.
  2. Элементүүдийг массиваас хувин руу оруулна. Элементүүдийг хувингийн хүрээний дагуу оруулдаг.
  3. Тогтвортой ангилах алгоритмуудын аль нэгийг ашиглан хувин бүрийн элементүүдийг эрэмбэлдэг.
  4. Шанага бүрийн элементүүдийг цуглуулдаг.

Хувин сортыг хаана хэрэглэдэг вэ?

Шанаганы төрөл оролт нь мужид жигд тархсан үед голчлон ашигтай байдаг. Жишээлбэл, дараах асуудлыг авч үзье. Эрэмбэлэх 0.0-ээс 1.0 хүртэлх мужид жигд тархсан хөвөгч цэгүүдийн том багц.

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