>일반적인 문제 >힙 정렬은 안정적인가요?

힙 정렬은 안정적인가요?

尚
원래의
2020-04-22 11:27:5218874검색

힙 정렬은 안정적인가요?

힙 정렬, 퀵 정렬, 힐 정렬, 직접 선택 정렬은 불안정한 정렬 알고리즘인 반면, 기수 정렬, 버블 정렬, 직접 삽입 정렬, 반삽입 정렬, 병합 정렬은 안정적인 정렬 알고리즘입니다.

힙 정렬

우리는 힙의 구조가 노드 i의 하위 노드가 2*i 및 2*i+1 노드라는 것을 알고 있습니다. 큰 상위 힙은 상위 노드가 2보다 크거나 같아야 합니다. 하위 노드이며, 작은 최상위 힙에서는 상위 노드가 2개의 하위 노드보다 작거나 같아야 합니다.

길이 n의 시퀀스에서 힙 정렬 프로세스는 n/2번째와 총 3개의 값을 가진 하위 노드부터 시작하여 가장 큰(큰 상단 힙) 또는 가장 작은(작은 상단 힙)을 선택하는 것입니다. 이 3가지 요소 선택이 안정성을 파괴하지는 않습니다. 그러나 n/2-1, n/2-2, ...1개의 상위 노드에 대한 요소를 선택하면 안정성이 손상됩니다.

n/2번째 상위 노드가 다음 요소를 교환하는 동안 n/2-1번째 상위 노드가 다음 동일한 요소를 교환하지 않을 가능성이 있습니다. 그러면 이 두 동일한 요소 간의 안정성이 손상됩니다. 따라서 힙 정렬은 안정적인 정렬 알고리즘이 아닙니다.

위 내용은 힙 정렬은 안정적인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.