Цифрове сортування, також відомий як граф роду (не плутати з підрахунком роду), є алгоритм сортування, який підходить для сортування списків елементів, в яких кількість елементів (n) і число можливих значень ключа (N) приблизно ж вона вимагає O(n + N) часу.
Алгоритм працює наступним чином:
- Надається масив значень, які необхідно відсортувати, створити допоміжний масив спочатку порожній, один для кожного ключа через спектр вихідного масиву.
- Проходимо вихідний масив, присвоюємо кожне значення в комірку, що відповідає її ключу, так що кожна комірка зрештою містить список всіх значень з цим ключем.
- Ітерація над осередками масиву в порядку, і покласти елементи з непустих осередків назад у вихідний масив.
Наприклад, припустимо, що ми розбирали ці пари значень їх першого елемента:
- (5, "hello")
- (3, "pie")
- (8, "apple")
- (5, "king")
Для кожного значення між 3 і 8 ми створюємо список, а потім перемістимо кожен елемент до його класу:
- 3: (3, "pie")
- 4:
- 5: (5, "hello"), (5, "king")
- 6:
- 7:
- 8: (8, "apple")
Потім ми переберемо масив в порядку і перемістіть їх назад в початковий список.
Різниця між осередками сортування і підрахунку роду є те, що при підрахунку роду, допоміжний масив не містить списки вхідних елементів, тільки має значення:
- 3: 1
- 4: 0
- 5: 2
- 6: 0
- 7: 0
- 8: 1
Використовуючи цю інформацію ми можемо виконати ряд обмінів на вхід масив, який ставить його в порядку, переміщення елементів тільки один раз.
Для масивів, де N набагато більше, ніж n, ківш роду є узагальнення, що є ефективнішим у просторі та часі.
Див. також
Література
- Дональд Кнут. Sorting and Searching // The Art of Computer Programming. — 3rd. — Massachusetts : Addison–Wesley, 1998. — Т. 3. — 780 с. — .(англ.)
Посилання
- Візуалізатор 1 — Java-аплет.
- Візуалізатор 2 — Java-аплет.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Nemaye perevirenih versij ciyeyi storinki jmovirno yiyi she ne pereviryali na vidpovidnist pravilam proektu Cifrove sortuvannya takozh vidomij yak graf rodu ne plutati z pidrahunkom rodu ye algoritm sortuvannya yakij pidhodit dlya sortuvannya spiskiv elementiv v yakih kilkist elementiv n i chislo mozhlivih znachen klyucha N priblizno zh vona vimagaye O n N chasu Algoritm pracyuye nastupnim chinom Nadayetsya masiv znachen yaki neobhidno vidsortuvati stvoriti dopomizhnij masiv spochatku porozhnij odin dlya kozhnogo klyucha cherez spektr vihidnogo masivu Prohodimo vihidnij masiv prisvoyuyemo kozhne znachennya v komirku sho vidpovidaye yiyi klyuchu tak sho kozhna komirka zreshtoyu mistit spisok vsih znachen z cim klyuchem Iteraciya nad oseredkami masivu v poryadku i poklasti elementi z nepustih oseredkiv nazad u vihidnij masiv Napriklad pripustimo sho mi rozbirali ci pari znachen yih pershogo elementa 5 hello 3 pie 8 apple 5 king Dlya kozhnogo znachennya mizh 3 i 8 mi stvoryuyemo spisok a potim peremistimo kozhen element do jogo klasu 3 3 pie 4 5 5 hello 5 king 6 7 8 8 apple Potim mi pereberemo masiv v poryadku i peremistit yih nazad v pochatkovij spisok Riznicya mizh oseredkami sortuvannya i pidrahunku rodu ye te sho pri pidrahunku rodu dopomizhnij masiv ne mistit spiski vhidnih elementiv tilki maye znachennya 3 1 4 0 5 2 6 0 7 0 8 1 Vikoristovuyuchi cyu informaciyu mi mozhemo vikonati ryad obminiv na vhid masiv yakij stavit jogo v poryadku peremishennya elementiv tilki odin raz Dlya masiviv de N nabagato bilshe nizh n kivsh rodu ye uzagalnennya sho ye efektivnishim u prostori ta chasi Div takozhred Cifrovij principLiteraturared Donald Knut Sorting and Searching The Art of Computer Programming 3rd Massachusetts Addison Wesley 1998 T 3 780 s ISBN 0 201 89685 0 angl Posilannyared Vizualizator 1 Java aplet Vizualizator 2 Java aplet Otrimano z https uk wikipedia org wiki Cifrove sortuvannya