이것은의 재 게시입니다 cs.SE에 질문 하여 Janoma . 그 또는 cs.SE에 대한 완전한 크레딧 및 전리품.
표준 알고리즘 과정에서 우리는 quicksort 가 평균 O (n log n)이고 최악의 경우 O (n²) 임을 배웁니다 . 동시에 최악의 경우 ( sergesort 및 heapsort 와 같은) O (n log n) , 심지어 가장 좋은 경우 ( bubblesort 와 같은 ) 선형 시간 이지만 추가 메모리가 필요한 다른 정렬 알고리즘이 연구 됩니다.
에 잠깐 한눈 후 좀 더 실행 시간 이 퀵는 말을 당연 하지 말아야 다른 사람 효율적으로합니다.
또한 학생들은 기본 프로그래밍 과정에서 재귀가 너무 많은 메모리를 사용할 수 있기 때문에 일반적으로 좋지 않다는 것을 배우는 것을 고려하십시오. 따라서 (그리고 이것이 실제 논쟁이 아니더라도), 이것은 퀵 정렬이 그렇지 않을 수도 있다는 생각을줍니다. 재귀 알고리즘이기 때문에 정말 좋습니다.
그렇다면 퀵 정렬이 실제로 다른 정렬 알고리즘보다 우수한 이유는 무엇입니까? 실제 데이터 의 구조와 관련이 있습니까? 컴퓨터에서 메모리가 작동하는 방식과 관련이 있습니까? 나는 어떤 기억들이 다른 기억들보다 더 빠르다는 것을 알고 있지만, 이것이 이론상 추정치와 비교할 때이 반 직관적 인 성능의 실제 이유인지는 모른다.