2011-05-12 2 views
4

제목에서 알 수 있듯이 비 비교 정렬 알고리즘 만 기수 정렬입니까? 내 추측은 그렇습니다.radix는 비 비교 정렬 알고리즘 만 정렬합니까?

+1

* 비 비교 * 란 무엇을 의미합니까? 버킷 당 하나 이상의 항목이 없다면 모든 종류가 * something *을 비교해야합니다. –

+2

@Loadmaster : 이름은 약간 오도 된 것입니다. 즉, 요소를 원자 적으로 비교하지 않는 정렬을 의미합니다. – reavowed

+0

스파게티 정렬 (적절한 하드웨어를 사용할 수있는 경우) ... –

답변

6

아니요 - 계산 정렬 및 버킷 정렬도 있습니다. 자세한 내용은 Wikipedia article을 확인하십시오.

1

모든 세트는 비교를 사용하지 않고 정렬 할 수 있습니다.

과정은

  • 당신이 관리 배열에 기록하는 처리 할 수있는 입력 도메인 M의 관리 가능한 크기를 결정합니다. 문자 (8 비트)의 경우 도메인은 0-255입니다.
  • 은 입력을 순서대로 분할하여 배열에 넣습니다.
  • 입력이 아직 완전히 고려되지 않은 즉 M의 모든 비트가 고려되지 않은 경우 반복하고 헹구십시오. 32 비트, M, 정수의 종류는 다음과 같이 수행 할 수 있습니다 예를 들어

: 첫 번째 8 비트, 넣어 (참조, 포인터 또는 무엇 당신의 LANG을 사용할 수있다)에서

  • 찾습니다에서 8 비트 범위. 배열 [0-255]에 넣으면 이제 값의 대략적인 (야구장) 순서가 지정됩니다.
  • 다음 8 비트를 살펴보고 유사한 배열에 넣고 첫 번째 순서에 대한 참조를 유지합니다. 다음 8x2 비트는 같은 방식으로 처리됩니다. 당신을 추출하려면 첫 번째 세트의 링크를 따르십시오.

기수 정렬은 숫자를 사용하며 2 개의 변형 (MSB에서 LSB)과 (LSB에서 MSB까지)가 있습니다.

계수의 종류는 계산의 혼합과 비교 종류를 참조 할 때

버킷 종류는 일반적으로 언급되는 첫 번째 단계를 사용합니다.

흥미롭게도 꽤 많은 사용 사례의 경우 비교 정렬이 짧습니다.