kzhereb / kpi-acts-ta2020

Materials for "Algorithm theory" course
MIT License
0 stars 0 forks source link

Q04.4. Algorithms that use sorting? #58

Open Anastasiia2002 opened 4 years ago

Anastasiia2002 commented 4 years ago

Q04.4. Алгоритми, які використовують сортування?

Навести приклади алгоритмів чи задач, де використовується сортування як один з кроків алгоритму Може бути необхідною частиною алгоритму Або покращує властивості алгоритму, наприклад швидкість, використання пам’яті, … Можна також наводити задачі, де важливі додаткові властивості алгоритмів сортування (наприклад, стабільність, in-place, …)

Q04.4. Algorithms that use sorting?

Give examples of algorithms or problems where sorting is used as one of the steps algorithm May be a necessary part of the algorithm Or improves the properties of the algorithm, for example speed, memory usage,… You can also list tasks where they are important additional properties of sorting algorithms (eg stability, in-place,…)

Yuliiaa commented 4 years ago

Алгоритми сортування мають велике практичне застосування. Їх можна зустріти майже всюди, де мова йде про обробку та зберігання великих обсягів інформації. Деякі завдання обробки даних вирішуються простіше, якщо дані впорядковані. Наприклад:

bastikk commented 4 years ago

Як уже було сказано алгоритми сортування зустрічаються майже всюди. Наведу декілька прикладів: -В алгоритмах сортування. (І я не помилився, алгоритми сортування застосовуються в алгоритмах сортування :D . Наприклад для алгоритма сортування підрахунком, потрібно передати відсортований список унікальних елементів, або ж використати інший алгоритм сортування). -Пошук найближчої пари. -Перевірка елементів на унікальність(у відсортованому списку треба порівнювати лише два сусідні елемента). -Задача пошуку опуклих корпусів. https://en.wikipedia.org/wiki/Convex_hull

chihh commented 4 years ago

Алгоритми сортування часто використовуються в жадібних алгоритмах, наприклад, у задачі про знаходження найкращого розпорядку виконання робіт для фрілансера, нам потрібно спочатку відсортувати масив задач за спаданням ціни виконаної роботи, а потім, доки є місце для цієї роботи, додавати її в "календар" - список задач, упорядкований так, щоб їх виконання принесло як можна більше користі. Таку задачу можна по різному, але найбільш корректне вирішення буде завжди потребувати сортування.