Lomuto vs Hoare
Hoare 파티션은 그렇지 않은 반면 동일한 키를 정렬 할 때 Lomuto 파티션은 어려움을 겪습니다.
중앙에서 먼 피벗을 사용할 때 두 파티션 구성표 모두 동일하게 고생합니다.
장애
측정 퀵 정렬을 위해 선택할 장애 측정은 간단합니다.
A : 무작위 데이터와 비교하여 고정 피벗이 중앙값에서 얼마나 멀리 제거됩니까?
Lomuto 파티션 사용을 주장하고 중복 값이 허용되는 경우 임의성에 대해 다음 테스트를 추가해야합니다.
B : 임의 요소에 비해 중복 요소 수는 몇 개입니까?
물론 데이터 세트에 중복 값이 허용되고 Lomuto 파티션을 평가한다고 가정하는 것은 어리석은 일이므로 미리 중복을 제거하거나 Hoare 파티션으로 전환하거나 중복이 드물다고 가정해야합니다.
두 측정법 모두 통계를 사용하여 정량화하는 것은 쉽지 않습니다.
우리는 병리학 적 데이터를 배제 할 수있다.
무작위성으로부터의 다른 편차는 퀵 정렬을 분석 할 목적으로는 중요하지 않다. 피벗이 중앙값에 가까우면 병리학 적이 지 않은 모든 데이터에서 제대로 작동합니다.
무작위로부터의 거리는 실제로 빠른 병리학 적이어야하므로 우리는 그것을 배제 할 수 있습니다.
실제 코드에서 고정 피벗을 사용하지 마십시오. 고정 피벗으로 실제 코드
를 작성하는 경우 *) (피벗이 무엇이든간에) 공격자는 그 시점의 병리학 적 가치는 항상 임의의 요소를 피벗으로 선택해야합니다.
*) x 개의 피벗을 가장 많이 선택하는 경우 여러 피벗.