Quicksort wyjaśnił dzieciom


16

W ubiegłym roku czytałem fantastyczny artykuł na temat „Mechaniki kwantowej dla przedszkola” . To nie był łatwy papier.

Zastanawiam się teraz, jak wytłumaczyć quicksort w najprostszych możliwych słowach. Jak mogę udowodnić (lub przynajmniej falę ręczną), że średnia złożoność wynosi i jakie są najlepsze i najgorsze przypadki dla klasy przedszkolnej? A przynajmniej w szkole podstawowej?O(nlogn)


9
Chcesz udowodnić złożoność quicksortu ... grupie trzylatków ...? Powodzenia.

2
Spróbuj użyć ich języka, problemem jest to, że jest bardzo ograniczony i biologicznie nie są gotowi na tę złożoność. Postępowanie zgodnie z algorytmem nie jest w pełni opracowane, dopóki nie osiągną wieku sześciu lub siedmiu lat. Stoisz przed wyzwaniem biologicznym.

4
Właściwie nie sugerowałbym tego dla przedszkola, ale wyszukiwanie w youtube w poszukiwaniu szybkiego sortowania (i innych algorytmów sortowania) zapewnia wiele dobrych reprezentacji. Ja osobiście wolę te hugariańskie tańce ludowe. Zobacz youtube.com/watch?v=ywWBy6J5gz8 .

2
Artykuł, o którym mówisz, ma chwytliwy tytuł, ale bardzo złożoną treść, taką jak Hilbert Space Model, więc po co tak naprawdę chcesz?

2
Zrezygnowałbym z próby pełnego wyjaśnienia szybkiego sortowania, a zamiast tego starałem się dać dzieciom zrozumienie „dziel i zwyciężaj”. Nawet jeśli nie są wystarczająco duże, aby w pełni pokryć rekurencję, pomysł podzielenia dużego problemu na mniejsze problemy byłby naprawdę cenny. Osobiście przyjąłbym solidne fundamentalne zrozumienie podziału i podboju każdego dnia na podstawie niepełnego pojęcia złożonych algorytmów.
Vincent Gable,

Odpowiedzi:


14

U ich podstaw leży Quicksort:

  1. Weź pierwszy przedmiot.
  2. Przenieś wszystko mniej niż pierwszy element na lewo od niego, wszystko większe na prawo (przy rosnącym porządku).
  3. Powtórz z każdej strony.

Myślę, że każdy 4-latek na planecie mógłby zrobić 1 i 2. Rekurencja może wymagać nieco więcej wyjaśnień, ale nie powinna być dla nich taka trudna.

  1. Powtórz po lewej stronie, na razie ignorując prawą (ale pamiętaj, gdzie była środek)
  2. Powtarzaj z lewej strony, aż dojdziesz do niczego. Teraz wróć do ostatniej ignorowanej prawej strony i powtórz tam proces.
  3. Gdy zabraknie prawej i lewej strony, gotowe.

Jeśli chodzi o złożoność, najgorszy przypadek powinien być dość łatwy. Rozważmy już posortowaną tablicę:

1 2 3 4
  2 3 4
    3 4
      4

Dość łatwo zauważyć (i udowodnić), że to .12)n2)

Nie jestem zaznajomiony z dowodem przeciętnej wielkości liter, więc nie mogę naprawdę zasugerować tego. Można powiedzieć, że w nieposortowanej tablicy długości prawdopodobieństwo wybrania najmniejszego lub największego przedmiotu wynosi 2l , więc ...?2)n


Być może rekurencja (d & c) jest najlepsza i najbardziej naturalnie wyjaśniona nieodłącznym paralelizmem.
Raphael

2
Zgodziłbym się. Instynktownie wykorzystałem metaforę podania dwóch stosów przyjaciołom do pracy.
Christian Mann,

3
Twierdzę, że czterolatki są (z możliwymi wyjątkami) zasadniczo niezdolne do zrozumienia rekurencji, bez względu na to, jak bardzo się starasz. Mózg po prostu nie jest wystarczająco dojrzały. Istnieją dobrze zdefiniowane etapy rozwoju mózgu, na przykład moment, w którym dzieci stają się samoświadome, kiedy uświadamiają sobie przyszłe konsekwencje bieżących działań, i gdzie najpierw rozumieją sarkazm, który postępuje według ściśle kontrolowanego harmonogramu, którego nie można umyślnie zmienić. jest wysoce konserwowany u dzieci. Uważam, że zrozumienie rekurencji należy do tej samej kategorii.
Konrad Rudolph

16

Quicksort jest naprawdę łatwy do zrozumienia, jeśli rozumie podstawowe liczenie i dzielenie przez 2. Zrób kilka X kart flash, policz je 1 - X i potasuj. Oto wyjaśnienie:

OK, mamy tu talię (powiedzmy 20) kart. Chcemy je uporządkować, więc 1 to najpierw, potem 2, potem 3 itd. Oto bardzo szybki sposób, aby to zrobić.

Najpierw przejdźmy przez ten pokład i ułóżmy z niego dwa stosy. Połowa z 20 to 10, więc wszystko większe niż 10 trafia do tego stosu po prawej stronie, a wszystko mniejsze do tego stosu po lewej. (Pamiętaj, aby zademonstrować podczas podróży.)

Teraz zróbmy to samo z mniejszymi stosami. Co to jest połowa z 10? (Ktoś mówi „pięć!”) Zgadza się! Więc wszystko większe niż 5 trafia do tego stosu po prawej stronie, a wszystko mniejsze do tego stosu po lewej stronie.

A tutaj mamy grupę, która jest większa niż 10. Więc połowa 10 to 5, a co to 10 plus 5? (Ktoś mówi „piętnaście!”) Zgadza się! Tak więc wszystko większe niż 15 trafia do tego stosu po prawej stronie, a wszystko mniejsze niż 15 trafia do tego stosu po lewej stronie.

A teraz stosy stają się na tyle małe, że można łatwo na nie spojrzeć i uporządkować. Spójrz, oto mamy 2, 4, 5, 3, 1. Więc zmieniamy je w ten sposób i widać 1, 2, 3, 4, 5. Zróbmy to samo z innymi stosami, a następnie ułóżmy stosy w porządku i patrz! Są w kolejności od 1 do 20!

Gratulacje. Właśnie nauczyłeś grupę dzieci podstawowych zasad adaptacyjnego algorytmu szybkiego sortowania! Możesz pójść nieco głębiej, zależnie od dojrzałości umysłowej, ale wykraczanie daleko poza ten punkt wymaga pewnego zrozumienia logiki formalnej.

Co do udowodnienia jego złożoności, jest to trudniejsze. Jest to jedna z rzeczy, które wymagają formalnej logiki i przede wszystkim będą musieli zrozumieć podstawowe zasady notacji wielkiej-O. Na początku możesz chcieć się powstrzymać.


Nie sądzę, aby twój przykład był dobry, ponieważ zasadniczo sortujesz według kluczy, a nie wartości, i możesz wiedzieć, co jest na pozycji 15, po uprzednim posortowaniu.
Thorbjørn Ravn Andersen

@ Thorbjørn: Kto powiedział coś o parach klucz / wartość? Jest to prosty rodzaj liczb całkowitych w celu wyjaśnienia podstawowej koncepcji.
Mason Wheeler,

Zastanawianie się nad algorytmem, który opisujesz, nie jest szybkie, ponieważ nie używasz elementu przestawnego.
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen: Oczywiście, że tak; po prostu wie, które elementy tam są, więc może wybrać medianę.
Raphael

@Raphael i ich dystrybucja. Karty mogą mieć dowolną wartość i kolor i mieć po prostu naklejkę z numerem od 1 do 20. Stąd moje odniesienie do klucza / indeksu, a nie wartości.
Thorbjørn Ravn Andersen

2

Co powiesz na to?

Computer Unplugged - Algorytmy sortowania

Nie obejmuje wszystkich twoich pytań, ale to dobry początek.

Więcej zasobów na ten temat można znaleźć tutaj .

Zrobili również dostępny film, który wyjaśnia algorytmy sortowania (quicksort zestawie) tutaj . Ten film naprawdę pomaga zrozumieć różnicę między różnymi algorytmami sortowania dla małych dzieci.


niesamowity ! Dość łatwy do zrozumienia.
Mayur Patil,

1

Zobacz piękno graficzne tego małego dema .

szybkie sortowanie.


1
Myślę, że to może być zbyt abstrakcyjne dla dzieci.
Raphael

3
Nie zawstydzam się, ale nie zrozumiałem tej grafiki, dopóki w końcu nie wyjaśniono mi, jak w klasie można mówić o szybkim sortowaniu.
Christian Mann,

Mają +1, ponieważ to właśnie przyszło mi do głowy, kiedy czytam pytanie, ale potem jestem wizualnym uczniem.
Joshua Drake,

3
To naprawdę zły sposób na wyjaśnienie, jak działa Quicksort . Jeśli znasz już Quicksort, możesz potwierdzić, że ta animacja dotyczy Quicksort. Jeśli nie znasz quicksort, nic nie mówi poza tym, że quicksort jest dość szybkim algorytmem sortującym, który wykorzystuje trochę magii. W zależności od tego, kim są odbiorcy, możesz być w stanie zmotywować odbiorców do nauki szybkiego sortowania, pokazując tę ​​animację, ale nie wyjaśnia to nic ważnego na temat tego, jak to działa.
Tsuyoshi Ito,

Animacja jest całkiem ładna, ale jak na razie powinna być zrozumiała dla początkującego, nawet dla studentów pierwszego stopnia.
jonaprieto
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.