퀵 정렬은 아이들에게 설명


16

작년에 나는 “유치원을위한 양자 역학”에 관한 환상적인 논문을 읽고있었습니다 . 쉬운 종이 아니었다.

이제 가장 간단한 단어로 퀵 정렬을 설명하는 방법이 궁금합니다. 평균 복잡도가 이고 유치원 클래스에 가장 좋은 경우와 최악의 경우가 무엇인지 어떻게 증명할 수 있습니까? 아니면 적어도 초등학교에서?영형(로그)


9
당신은 퀵 정렬의 복잡성을 증명하고 싶습니다 ... 3 살짜리 아이들에게 ...? 행운을 빕니다.

2
그들의 언어를 사용하려고하면 문제는 매우 제한적이고 생물학적 으로이 복잡성에 대비할 수 없다는 것입니다. 알고리즘에서와 같이 다음 단계는 6 ~ 7 세가 될 때까지 완전히 개발되지 않았습니다. 당신은 생물학적 도전에 직면하고 있습니다.

4
나는 유치원에 실제로 그것을 제안하지는 않지만 퀵 정렬 (및 기타 정렬 알고리즘)을 위해 유튜브를 검색하면 많은 좋은 표현을 제공합니다. 나는 개인적으로 Hugarian 민속 무용을 선호합니다. youtube.com/watch?v=ywWBy6J5gz8을 참조하십시오 .

2
당신이 이야기하는 논문은 주목할만한 제목이지만 Hilbert Space Model과 같은 매우 복잡한 내용을 가지고 있습니다.

2
나는 퀵 정렬을 완전히 설명하려고 노력하는 것을 포기하고 대신에 아이들에게 "분할과 정복"에 대한 이해를 주려고 노력한다. 그들이 재귀를 완전히 파악하기에 충분히 오래되지 않았더라도 큰 문제를 작은 문제로 나누는 아이디어는 실제로 가치가 있습니다. 개인적으로 나는 복잡한 알고리즘에 대한 불완전한 개념을 통해 어떤 식 으로든 분할 및 공법에 대한 확실한 기초 지식을 갖습니다.
Vincent Gable

답변:


14

핵심적으로 Quicksort는 다음과 같습니다.

  1. 첫 번째 항목을 가져 가십시오.
  2. 첫 번째 항목보다 작은 항목을 왼쪽으로 옮기고 오른쪽으로 큰 것을 이동하십시오 (오름차순으로 가정).
  3. 양쪽에서 반복합니다.

나는 지구상의 모든 4 살짜리 아이들이 1과 2를 할 수 있다고 생각합니다. 재귀는 조금 더 설명이 필요할지 모르지만, 그렇게 어렵지 않아야합니다.

  1. 지금은 오른쪽을 무시하고 왼쪽에서 반복하십시오 (그러나 가운데가 어디에 있는지 기억하십시오)
  2. 아무것도 얻을 때까지 왼쪽으로 계속 반복하십시오. 이제 무시한 마지막 오른쪽으로 돌아가서 프로세스를 반복하십시오.
  3. 오른쪽과 왼쪽이 부족하면 완료됩니다.

복잡성에 관해서는 최악의 경우는 상당히 쉬워야합니다. 이미 정렬 된 배열을 고려하십시오.

1 2 3 4
  2 3 4
    3 4
      4

그것이 볼 수있는 상당히 쉬운 (그리고 증명) .122

나는 평균 사례 증거에 익숙하지 않으므로 실제로 그에 대한 제안을 할 수 없습니다. 정렬되지 않은 길이의 배열 가장 작거나 가장 큰 항목을 선택할 확률은 2 라고 말할 수 있습니다. 그래서 ...?2


어쩌면 (d & c) 재귀가 가장 자연스럽고 가장 자연스럽게 평행하게 설명되어있을 것입니다.
Raphael

2
동의합니다. 저의 본능은 두 더미를 친구들에게 나누어주는 은유를 활용하는 것이 었습니다.
Christian Mann

3
나는 네 살짜리 아이가 (가능한 예외는 있지만) 아무리 노력해도 근본적으로 재귀를 파악할 수 없다고 주장합니다. 뇌는 단순히 성숙하지 않습니다. 두뇌 발달에는 어린이들이 자각하게되는 시점, 현재 행동의 미래 결과에 대해 알게되는 시점, 고의적으로 순서를 바꿀 수없는 엄격하게 통제 된 일정을 따르는 빈정 거림을 먼저 이해하는 시점 등 뇌 발달에 명확한 단계가 있습니다. 어린이들 사이에서 고도로 보존되어 있습니다. 재귀 이해는 같은 범주에 속한다고 생각합니다.
Konrad Rudolph

16

Quicksort는 기본 카운팅과 2로 나누기를 이해하면 실제로 이해하기 쉽습니다. 다음은 설명입니다.

좋아, 우리는 여기에 (20의 카드)이 갑판이 있습니다. 우리는 그것들을 순서대로 놓기를 원합니다. 그래서 1은 먼저, 2는 3, 그리고 기타 등등입니다. 여기에 매우 빠른 방법이 있습니다.

먼저,이 데크를 통해 두 개의 더미를 만들어 봅시다. 20의 절반은 10이므로 10보다 큰 것은 오른쪽의이 더미에 들어가고 작은 것은 왼쪽의이 더미에 들어갑니다. (가면서 보여줘야합니다.)

이제 더 작은 파일로 같은 작업을하겠습니다. 10의 절반은 무엇입니까? (누군가 "오!"라고 말합니다) 맞습니다! 따라서 5보다 큰 것은 오른쪽의이 더미에 들어가고 작은 것은 왼쪽의이 더미에 들어갑니다.

그리고 여기에는 10보다 큰 그룹이 있습니다. 10의 절반은 5이고 10 + 5는 무엇입니까? (누군가 "15"라고 말합니다) 맞습니다! 따라서 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 : 물론 그는 않습니다; 그는 어떤 요소가 있는지 알고 있으므로 중앙값을 선택할 수 있습니다.
Raphael

@Raphael과 그들의 배포. 카드는 모든 값과 색상이 될 수 있으며 1에서 20 사이의 숫자로 된 스티커가 있습니다. 따라서 값이 아닌 키 / 인덱스에 대한 내 참조입니다.
Thorbjørn Ravn Andersen

2

이건 어때?

컴퓨터 과학 분리-정렬 알고리즘

모든 질문을 다 다루지는 않지만 좋은 시작입니다.

이 주제에 대한 추가 자료는 여기 에 링크되어 있습니다 .

또한 정렬 알고리즘 (빠른 분류 포함)을 설명하는 비디오를 여기에 제공했습니다 . 이 비디오는 어린 아이들을위한 다양한 정렬 알고리즘의 차이점을 이해하는 데 실제로 도움이됩니다.


굉장한 일 ! 이해하기 쉽다.
Mayur Patil

1

작은 데모 의 그래픽 사랑 스러움을 참조하십시오 .

퀵 정렬.


1
나는 그것이 아이들에게는 너무 추상적이라고 생각합니다.
Raphael

3
나 자신을 당황하게 만들지는 않았지만 수업 시간에 퀵 정렬을 마침내 설명 할 때까지 나는 그 그래픽을 이해하지 못했습니다.
Christian Mann

이것이 질문을 읽을 때 처음 일어난 일이기 때문에 +1을 가지십시오. 그러나 저는 시각적 학습자입니다.
Joshua Drake

3
이것은 quicksort의 작동 방식을 설명 하는 잘못된 방법 입니다. 퀵 정렬을 이미 알고 있다면이 애니메이션이 퀵 정렬에 관한 것인지 확인할 수 있습니다. quicksort를 모르는 경우 quicksort는 마술을 사용하는 상당히 빠른 정렬 알고리즘이라는 것 외에는 아무 것도 알려주지 않습니다. 청중이 누구인지에 따라이 애니메이션을 표시하여 청중이 퀵 정렬에 대해 배우도록 동기를 부여 할 수 있지만 작동 방식에 대한 중요한 설명은 없습니다.
이토 쓰요시

애니메이션은 꽤 좋지만 처음에는 학부생조차도 초보자에게는 이해할 수 있습니다.
jonaprieto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.