introsort 구현을 다루는 과제 할당의 일환으로 mergesort (또는 그 문제에 대한 다른 알고리즘 대신 heapsort가 사용되는 이유를 묻습니다 .
Introsort는 빠른 평균 성능과 (무의식적으로) 최적의 최악의 성능을 모두 제공하는 하이브리드 정렬 알고리즘입니다. 재귀 수준이 정렬되는 요소 수 (로그)에 따라 수준을 초과하면 빠른 정렬로 시작하여 힙 정렬로 전환됩니다. ( Wikipedia , 2014 년 5 월 6 일에 확인 함)
내가 생각할 수있는 유일한 이유는 heapsort가 "제자리에있다"는 것입니다 ...하지만 tbh 왜 이것이 이것이 중요한지 이해하지 못합니다.
3
introsort가 질문의 일부라면, 우리가 무엇을 말하기 전에 그것이 무엇인지 알려 주어야합니다.
—
Louis
소개 정렬을 위해 의사 코드를 작성하라는 요청을 받았으며 나중에 머지 정렬 대신 힙 정렬을 사용하는 이유를 묻습니다.
—
user672009
이 경우 어느 쪽이든 코드를 작성하여 찾은 내용을 확인하십시오. 이유는 성능과 관련이있을 수도 있고 그렇지 않을 수도 있습니다.
—
Raphael
나는 퀵 정렬 정렬이 제자리에 있기 때문에 다른 정렬 알고리즘을 사용해야한다고 결론 지었다. 그러나 나는 입력을 위해 열려 있습니다.
—
user672009