Кіксорт пояснив дітям


16

Минулого року я читав фантастичний документ на тему "Квантова механіка для дитячого саду" . Папір був непростим.

Зараз мені цікаво, як пояснити хитрощі найпростішими можливими словами. Як я можу довести (або принаймні рукохвиль), що середня складність становить , і які найкращі та найгірші випадки стосуються до класу дитячих садків? Або хоча б у початковій школі?O(nlogn)


9
Ви хочете довести складність хитрості ... до групи трирічних дітей ...? Удачі.

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

4
Я б насправді не пропонував це для дитячого садка, але пошук у ютубі для кваксортів (та інших алгоритмів сортування) дає багато хороших уявлень. Особисто я віддаю перевагу угорським народним танцям. Дивіться youtube.com/watch?v=ywWBy6J5gz8 .

2
Документ, про який ви говорите, має захоплюючу назву, але дуже складний зміст, такий як космічна модель Гільберта, тож чого ви насправді хочете?

2
Я б відмовився від спроби повністю пояснити хитрощі, а натомість спробував би дати дітям розуміння "розділити та перемогти". Навіть якщо вони не є достатньо старими, щоб повністю вдатися до рекурсії, ідея розбиття великої проблеми на менші проблеми була б дійсно цінна. Особисто я б зрозумів ґрунтовне фундаментальне розуміння ділення і перемоги будь-якого дня над неповним поняттям складних алгоритмів.
Вінсент Гейбл

Відповіді:


14

По суті, Quicksort полягає в наступному:

  1. Візьміть перший предмет.
  2. Перемістіть усе менше, ніж перший елемент, ліворуч від нього, все більше праворуч (припускаючи порядку зростання).
  3. Повторіть з кожного боку.

Я думаю, кожен 4-річний чоловік на планеті міг би зробити 1 і 2. Рекурсія може зайняти трохи більше пояснень, але це не повинно бути для них важким.

  1. Повторіть на лівій стороні, поки ігноруючи праву (але пам’ятайте, де була середина)
  2. Продовжуйте повторювати з лівими сторонами, поки не дістанете нічого. Тепер поверніться до останньої правої сторони, яку ви проігнорували, і повторіть процес там.
  3. Після того, як ви закінчитеся з правої та лівої сторін, ви закінчите.

Щодо складності, то в гіршому випадку має бути досить легко. Просто врахуйте вже відсортований масив:

1 2 3 4
  2 3 4
    3 4
      4

Досить легко побачити (і довести), що це .12н2

Я не знайомий із середнім доказом справ, тому не можу насправді зробити пропозицію щодо цього. Можна сказати, що в несортованому масиві довжиною ймовірність вибору найменшого або найбільшого елемента дорівнює 2л , так ...?2н


Можливо, найкраще і природніше пояснюється рекусія (d & c) притаманним паралелізмом.
Рафаель

2
Я погодився б. Мій інстинкт полягав у використанні метафори надання двох паль вашим друзям для роботи.
Крістіан Манн

3
Я стверджую, що чотирирічні діти (за можливими винятками) принципово не здатні зрозуміти рекурсію, як би ви не старалися. Мозок просто недостатньо зрілий. Існують чітко визначені фази розвитку мозку, наприклад, точка, коли діти стають самосвідомими, де вони усвідомлюють майбутні наслідки поточних дій, і коли вони спочатку розуміють сарказм, який слідує чітко контрольованому графіку, який не може бути перепорядкований навмисно і дуже зберігається у дітей. Я вважаю, що розуміння рекурсії потрапляє в одну категорію.
Конрад Рудольф

16

Quicksort насправді досить простий для розуміння, якщо вони розуміють основний підрахунок та ділення на 2. Складіть купу флеш-карт X, пронумеруйте їх 1 - X і перетасуйте їх. Тоді ось пояснення:

Гаразд, у нас тут є колоди (скажімо, 20) карток. Ми хочемо привести їх у порядок, тож спочатку 1, потім 2, потім 3 тощо. Ось дуже швидкий спосіб зробити це.

Спочатку перейдемо через цю колоду і зробимо з неї дві палі. Половина 20 - це 10, тому все, що більше 10, знаходиться в цій купі праворуч, а все менше, ніж у меншій, йде в цій купі зліва. (Обов’язково продемонструйте, як ви йдете.)

Тепер давайте зробимо те ж саме з меншими палі. Що половина з 10? (Хтось каже «п’ять!») Правильно! Тому все, що більше 5, йде в цю купу праворуч, і все, що менше, знаходиться в цій купі зліва.

І ось, у нас є група, яка більша за 10. Отже, половина 10 - це 5, а що 10 плюс 5? (Хтось каже «п’ятнадцять!») Правильно! Тому все, що більше 15, йде в цю купу праворуч, а все, що менше 15, знаходиться в цій купі зліва.

А тепер палі стають досить маленькими, що ви можете їх легко подивитися і привести в порядок. Подивіться, ось у нас є 2, 4, 5, 3, 1. Тому ми просто перемикаємо їх так, і ви можете бачити 1, 2, 3, 4, 5. Тож давайте зробимо те ж саме з іншими палі, і тоді ми просто наведемо палі в порядок і подивимося! Вони в порядку від 1 до 20!

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

Що стосується доведення його складності, то це складніше. Це одна з речей, яка вимагає формальної логіки, і їм в першу чергу доведеться зрозуміти основні принципи нотації big-O. Можливо, спочатку ви захочете затриматися на цій частині.


Я не думаю, що ваш приклад не є гарним, оскільки ви по суті сортуєте за ключами, а не за значеннями, і ви можете знати лише те, що знаходиться в позиції 15, лише відсортувавшись.
Thorbjørn Ravn Andersen

@ Thorbjørn: Хто сказав що-небудь про пари ключових / значущих? Це простий цілий сорт для пояснення основного поняття.
Мейсон Уілер

Роздумуючи над описаним алгоритмом, це не швидкодію, так як ви не використовуєте шарнірний елемент.
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen: Звичайно, так і є; просто він знає, які елементи є, тому може вибрати медіану.
Рафаель

@ Рафаель та їх розповсюдження. Картки можуть бути будь-яких цінностей і кольорів, а також мати наклейку з їх кількістю від 1 до 20. Отже, моє посилання на ключ / індекс, а не значення.
Thorbjørn Ravn Andersen

2

Як щодо цього?

Відключена комп’ютерна наука - сортування алгоритмів

Це не зовсім охоплює всі ваші запитання, але це вдалий початок.

Більше ресурсів на цю тему пов’язано тут .

Вони також зробили відео , доступним , що пояснює алгоритми сортування (швидке сортування в комплекті) тут . Це відео справді допомагає зрозуміти різницю між різними алгоритмами сортування для маленьких дітей.


дивовижний! Досить легко зрозуміти.
Mayur Patil

1

Подивіться графічну красуню цього маленького демонстратора .

швидкий.


1
Я думаю, що це може бути занадто абстрактно для дітей.
Рафаель

3
Щоб не бентежити себе, але я не зрозумів цю графіку, поки мені нарешті не пояснили хитрощі в класі.
Крістіан Манн

Майте +1, тому що це мені спочатку прийшло в голову, коли я читав питання, але потім я - візуальний учень.
Джошуа Дрейк

3
Це дійсно неправильний спосіб пояснити, як працює кікспорт . Якщо ви вже знаєте quicksort, ви можете підтвердити, що ця анімація стосується quicksort. Якщо ви не знаєте quicksort, він нічого не говорить, крім того, що quicksort є досить швидким алгоритмом сортування, який використовує певну магію. Залежно від того, хто це аудиторія, ви можете змогти мотивувати аудиторію дізнатися про хитрощі, показавши цю анімацію, але вона не пояснює нічого важливого про те, як вона працює.
Цуйосі Іто

Анімація дуже приємна, але вона поки що зрозуміла для початківців навіть для магістрантів.
jonaprieto
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.