Сортування вибором — простий алгоритм сортування лінійного масиву, на основі вставок. Має ефективність n2, що робить його неефективним при сортування великих масивів, і в цілому, менш ефективним за подібний алгоритм сортування включенням. Сортування вибором вирізняється більшою простотою, ніж сортування включенням, і в деяких випадках, вищою продуктивністю.
Клас | Алгоритм сортування |
---|---|
Структура даних | Масив |
Найгірша швидкодія | О(n2) |
Найкраща швидкодія | О(n2) |
Середня швидкодія | О(n2) |
Просторова складність у найгіршому випадку | О(n), O(1) |
Оптимальний | Не практичний |
Метод
Алгоритм працює таким чином:
- Знаходить у списку найменше значення
- Міняє його місцями із першим значенням у списку
- Повторює два попередніх кроки, доки список не завершиться (починаючи з наступної позиції)
Фактично, таким чином ми поділили список на дві частини: перша (ліва) — повністю відсортована, а друга (права) — ні.
Ось приклад сортування масиву з п'яти елементів за даним алгоритмом:
64 25 12 22 11 11 25 12 22 64 11 12 25 22 64 11 12 22 25 64
Сортування вставками також може працювати зі списками, які підтримують операції додавання і видалення, як то зв'язаний список. У такому разі, більш зручно видаляти зі списку найменший елемент, і вставляти його в кінець відсортованої частини масиву. Наприклад:
64 25 12 22 11 11 64 25 12 22 11 12 64 25 22 11 12 22 64 25 11 12 22 25 64
Аналіз
Сортування вибором не є складним в аналізі та порівнянні його з іншими алгоритмами, оскільки жоден з циклів не залежить від даних у списку. Знаходження найменшого елементу вимагає перегляду усіх n елементів (у цьому випадку n − 1 порівняння), і після цього, перестановки його до першої позиції. Знаходження наступного найменшого елементу вимагає перегляду n − 1 елементів, і так далі, для (n − 1) + (n − 2) + … + 2 + 1 = n(n − 1) / 2 ∈ Θ(n2) порівнянь (дивіться арифметична прогресія). Кожне сканування вимагає перестановки однієї пари елементів, тож всього потрібно (n − 1) перестановок (останній елемент знаходитиметься на своєму місці).
Джерела
- Дональд Кнут. Sorting and Searching // The Art of Computer Programming. — 3rd. — Massachusetts : Addison–Wesley, 1998. — Т. 3. — 780 с. — .(англ.)
Посилання
- Animated Sorting Algorithms: Selection Sort — графічна демонстрація роботи алгоритму.
- Наочна демонстрація сортування вибором ромалами в танку.
- Selection Sort Demo
- Selection Sort Demo[недоступне посилання з липня 2019]
- Pointers to
- C++ Program — Selection Sort
- Selection sort explained and C++ source code
Це незавершена стаття про алгоритми. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Sortuvannya viborom prostij algoritm sortuvannya linijnogo masivu na osnovi vstavok Maye efektivnist n2 sho robit jogo neefektivnim pri sortuvannya velikih masiviv i v cilomu mensh efektivnim za podibnij algoritm sortuvannya vklyuchennyam Sortuvannya viborom viriznyayetsya bilshoyu prostotoyu nizh sortuvannya vklyuchennyam i v deyakih vipadkah vishoyu produktivnistyu Sortuvannya viboromKlasAlgoritm sortuvannyaStruktura danihMasivNajgirsha shvidkodiyaO n2 Najkrasha shvidkodiyaO n2 Serednya shvidkodiyaO n2 Prostorova skladnist u najgirshomu vipadkuO n O 1 OptimalnijNe praktichnijMetodSortuvannya viborom Algoritm pracyuye takim chinom Znahodit u spisku najmenshe znachennya Minyaye jogo miscyami iz pershim znachennyam u spisku Povtoryuye dva poperednih kroki doki spisok ne zavershitsya pochinayuchi z nastupnoyi poziciyi Faktichno takim chinom mi podilili spisok na dvi chastini persha liva povnistyu vidsortovana a druga prava ni Os priklad sortuvannya masivu z p yati elementiv za danim algoritmom 64 25 12 22 11 11 25 12 22 64 11 12 25 22 64 11 12 22 25 64 Sortuvannya vstavkami takozh mozhe pracyuvati zi spiskami yaki pidtrimuyut operaciyi dodavannya i vidalennya yak to zv yazanij spisok U takomu razi bilsh zruchno vidalyati zi spisku najmenshij element i vstavlyati jogo v kinec vidsortovanoyi chastini masivu Napriklad 64 25 12 22 11 11 64 25 12 22 11 12 64 25 22 11 12 22 64 25 11 12 22 25 64AnalizSortuvannya viborom ne ye skladnim v analizi ta porivnyanni jogo z inshimi algoritmami oskilki zhoden z cikliv ne zalezhit vid danih u spisku Znahodzhennya najmenshogo elementu vimagaye pereglyadu usih n elementiv u comu vipadku n 1 porivnyannya i pislya cogo perestanovki jogo do pershoyi poziciyi Znahodzhennya nastupnogo najmenshogo elementu vimagaye pereglyadu n 1 elementiv i tak dali dlya n 1 n 2 2 1 n n 1 2 8 n2 porivnyan divitsya arifmetichna progresiya Kozhne skanuvannya vimagaye perestanovki odniyeyi pari elementiv tozh vsogo potribno n 1 perestanovok ostannij element znahoditimetsya na svoyemu misci DzherelaDonald Knut Sorting and Searching The Art of Computer Programming 3rd Massachusetts Addison Wesley 1998 T 3 780 s ISBN 0 201 89685 0 angl PosilannyaAnimated Sorting Algorithms Selection Sort grafichna demonstraciya roboti algoritmu Naochna demonstraciya sortuvannya viborom romalami v tanku Selection Sort Demo Selection Sort Demo nedostupne posilannya z lipnya 2019 Pointers to C Program Selection Sort Selection sort explained and C source code Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi