Топ питань
Часова шкала
Чат
Перспективи
Сортування вибором
З Вікіпедії, вільної енциклопедії
Remove ads
Сортування вибором — простий алгоритм сортування лінійного масиву, на основі вставок. Має ефективність n2, що робить його неефективним при сортування великих масивів, і в цілому, менш ефективним за подібний алгоритм сортування включенням. Сортування вибором вирізняється більшою простотою, ніж сортування включенням, і в деяких випадках, вищою продуктивністю.
Remove ads
Метод

Алгоритм працює таким чином:
- Знаходить у списку найменше значення
- Міняє його місцями із першим значенням у списку
- Повторює два попередніх кроки, доки список не завершиться (починаючи з наступної позиції)
Фактично, таким чином ми поділили список на дві частини: перша (ліва) — повністю відсортована, а друга (права) — ні.
Ось приклад сортування масиву з п'яти елементів за даним алгоритмом:
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
Remove ads
Аналіз
Сортування вибором не є складним в аналізі та порівнянні його з іншими алгоритмами, оскільки жоден з циклів не залежить від даних у списку. Знаходження найменшого елементу вимагає перегляду усіх n елементів (у цьому випадку n − 1 порівняння), і після цього, перестановки його до першої позиції. Знаходження наступного найменшого елементу вимагає перегляду n − 1 елементів, і так далі, для (n − 1) + (n − 2) + … + 2 + 1 = n(n − 1) / 2 ∈ Θ(n2) порівнянь (дивіться арифметична прогресія). Кожне сканування вимагає перестановки однієї пари елементів, тож всього потрібно (n − 1) перестановок (останній елемент знаходитиметься на своєму місці).
Remove ads
Джерела
- Дональд Кнут. Sorting and Searching // The Art of Computer Programming. — 3rd. — Massachusetts : Addison–Wesley, 1998. — Т. 3. — 780 с. — ISBN 0-201-89685-0.(англ.)
Посилання
- Animated Sorting Algorithms: Selection Sort — графічна демонстрація роботи алгоритму.
- Наочна демонстрація сортування вибором ромалами в танку.
- Selection Sort in C++
- Selection Sort Demo
- Selection Sort Demo[недоступне посилання з липня 2019]
- Selection Sort Demonstration
- Pointers to selection sort visualizations
- C++ Program — Selection Sort
- Selection sort explained and C++ source code
- A colored graphical Java applet
![]() |
Це незавершена стаття про алгоритми. Ви можете допомогти проєкту, виправивши або дописавши її. |
Remove ads
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads