작년에 나는 “유치원을위한 양자 역학”에 관한 환상적인 논문을 읽고있었습니다 . 쉬운 종이 아니었다.
이제 가장 간단한 단어로 퀵 정렬을 설명하는 방법이 궁금합니다. 평균 복잡도가 이고 유치원 클래스에 가장 좋은 경우와 최악의 경우가 무엇인지 어떻게 증명할 수 있습니까? 아니면 적어도 초등학교에서?
작년에 나는 “유치원을위한 양자 역학”에 관한 환상적인 논문을 읽고있었습니다 . 쉬운 종이 아니었다.
이제 가장 간단한 단어로 퀵 정렬을 설명하는 방법이 궁금합니다. 평균 복잡도가 이고 유치원 클래스에 가장 좋은 경우와 최악의 경우가 무엇인지 어떻게 증명할 수 있습니까? 아니면 적어도 초등학교에서?
답변:
핵심적으로 Quicksort는 다음과 같습니다.
나는 지구상의 모든 4 살짜리 아이들이 1과 2를 할 수 있다고 생각합니다. 재귀는 조금 더 설명이 필요할지 모르지만, 그렇게 어렵지 않아야합니다.
복잡성에 관해서는 최악의 경우는 상당히 쉬워야합니다. 이미 정렬 된 배열을 고려하십시오.
1 2 3 4
2 3 4
3 4
4
그것이 볼 수있는 상당히 쉬운 (그리고 증명) .
나는 평균 사례 증거에 익숙하지 않으므로 실제로 그에 대한 제안을 할 수 없습니다. 정렬되지 않은 길이의 배열 가장 작거나 가장 큰 항목을 선택할 확률은 2 라고 말할 수 있습니다. 그래서 ...?
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 표기법의 기본 원칙을 이해해야합니다. 처음에는 해당 부분을 보류하고 싶을 수도 있습니다.
이건 어때?
모든 질문을 다 다루지는 않지만 좋은 시작입니다.
이 주제에 대한 추가 자료는 여기 에 링크되어 있습니다 .
또한 정렬 알고리즘 (빠른 분류 포함)을 설명하는 비디오를 여기에 제공했습니다 . 이 비디오는 어린 아이들을위한 다양한 정렬 알고리즘의 차이점을 이해하는 데 실제로 도움이됩니다.
이 작은 데모 의 그래픽 사랑 스러움을 참조하십시오 .
.