이 질문의 요점은 다른 정렬 알고리즘에 대해 이것의 장점을 논하지 않는 것입니다. 확실히 이것을하는 다른 많은 질문이 있습니다. 이 질문은 이름에 관한 것입니다. Quicksort가 "Quicksort"라고 불리는 이유는 무엇입니까? 물론, 그것은 "빠른"것이지만 항상 그런 것은 아닙니다. O (N ^ 2) 로의 변성 가능성은 잘 알려져있다. 이 문제를 완화하기 위해 Quicksort에 대한 다양한 수정이 있지만 최악의 경우를 보장 된 O (n log n)로 낮추는 수정은 더 이상 Quicksort라고하지 않습니다. (예 : 인트로 소트).
나는 잘 알려진 모든 정렬 알고리즘의 이유를 궁금해합니다. 이것이 알고리즘의 작동 방식이 아니라 (보통) 얼마나 빠른지를 설명하는 "빠른"이라는 이름을 가진 유일한 것입니다. Mergesort는 데이터를 병합하기 때문에 호출됩니다. 힙을 사용하기 때문에 힙 정렬을 호출합니다. Introsort는 자체 성능을 모니터링하여 Quicksort에서 Heapsort로 전환 할시기를 결정하기 때문에 "Introspective"에서 이름을 가져옵니다. Bubblesort, Insertion sort, Selection sort 등 모든 느린 것들과 마찬가지로 모두 작동 방식에 따라 이름이 지정됩니다. 내가 생각할 수있는 유일한 예외는 "Bogosort"인데, 실제로 실제로 아무도 사용하지 않는 농담 일뿐입니다. Quicksort가 "파티션 정렬"또는 "피벗 정렬"과 같이 더 설명적인 것을 호출하지 않는 이유는 무엇입니까? 실제로 무엇을 설명합니까? 심지어 "먼저 여기에 도착"한 경우는 아닙니다. Mergesort는 Quicksort보다 15 년 전에 개발되었습니다. (위키 백과에 따라 각각 1945 년과 1960 년)
나는 이것이 프로그래밍 문제보다 역사 문제에 더 가깝다고 생각합니다. 나는 그것이 어떻게 이름을 얻었는지 궁금합니다. 좋은 마케팅입니까?
What's in a name? that which we call a rose By any other name would smell as sweet;
또는 빠르다. 게다가, O (N ^ 2) 로의 변성 가능성은 거의 발생하지 않으며, N LogN은 오늘날 우리가 더 빠른 알고리즘을 가지고 있음에도 불구하고 알고리즘에 매우 좋습니다. 게다가, 더 빠른 무언가가 나올 무렵, 너무 늦어서 모두가 이미 그것을 Quicksort라고 불렀습니다!