2013-10-16 6 views
0

32 비트 정수가 8 비트 청크로 분류된다는 요지가 있습니다. 패스가 어떻게 작동하는지 좀 더 설명해 줄 수 있나요? 간단한 예제를 통해 더 잘 이해할 수 있습니다. 예를 들어 2147507648과 2147507672가 있습니다. 8 비트 덩어리로 나눕니다. 128 0 093 216은 2147507672 및 128 0 093 192에 대한 분석입니다.기수 정렬은 32 비트 (또는 그 이상) 정수 정렬에서 어떻게 작동합니까?

LSD 기수 정렬이 기수 10에 대해 어떻게 작동하는지 알고 있습니다. 누군가가 저에게 정렬 작업 방법을 보여줄 수 있다면 고맙겠습니다. 그 8 비트 청크를 얻은 후에 그 32 비트 정수들.

고맙습니다.

답변

-1

Radix Sort으로 이동하기 전에 Counting Sort을 완전히 알고 있습니까?
Counting Sort을 이해하면 Radix Sort가 작동하는 방식을 쉽게 인식하고 직접 구현할 수 있습니다.

알아 두어야 할 몇 가지 사항은 숫자의 빈도를 추적하고 누적 빈도를 계산하는 것입니다. 누적 빈도는 최종 정렬 된 배열에서 th 요소의 위치를 ​​결정합니다. 여기

는 : http://www.youtube.com/watch?v=3mxp4JLGasE

+0

예, 간단한 예제 덕분에 그것을 이해했습니다 :-). 나는 그것의 뒤에 수학이 어떻게 작동하는지 이해하고 싶다. 방금 비교 기반 정렬 알고리즘 중 일부를 이해했습니다. 나중에 구현을 시도 할 것입니다. –

+0

기수 정렬은 기본적으로 * 단위, 수십, 수백 * 위치 –

+1

-1을 기준으로 숫자에 반복적으로 적용되는 정렬 계산 방식입니다. 주석이어야합니다. 여기에는 두 가지 종류에 관한 실제 정보가 포함되어 있지 않으며 설명에 대한 설명 링크 만 포함되어 있습니다. 아직 설명하지 않은 기수를 세는 것에서부터 사소한 단계가 있습니다.비디오가 미래에 언젠가는 사라지는 것이 불가능하지 않기 때문에, 적어도 링크에서 귀하의 답변에 필수 요소를 복사하는 것이 예상됩니다. – KillianDS

0

번호 그룹에 기수 정렬 뒤에 일반적인 생각은 몇 개의베이스 (B)의 수를 작성하는 것입니다, 다음 번에 숫자를 하나의 기본-B 숫자를 처리합니다. base-10 기수 정렬에 익숙하다면 알고리즘을 다른 기반에서 작동하도록 조정하는 것이 너무 많은 작업이 아닙니다.

예를 들어, 기수 2 (기수) 기수 정렬을 원한다고 가정 해 봅시다. 이 경우 2 진수 (2 진수)로 숫자를 씁니다. 10 개의 양동이가있는 대신 두 개의 양동이가 있습니다. 한 번에 하나씩 숫자의 숫자를 보는 대신 숫자의 비트를 한 번에 하나씩 살펴볼 것입니다. 그 이외의 알고리즘은 기본적으로 base-10과 같습니다.

숫자를 8 비트 그룹으로 나눌 때, 숫자를 기본 256으로 쓰는 것으로 생각할 수 있습니다. 이유는 무엇입니까? 비유로 추론하기 위해, 10 진수 기수 (10 개 기수)를 사용하고 10 기의 버킷 대신 100 개의 버킷을 사용한다고 가정합니다. 그런 다음 한 번에 하나씩 숫자를 처리하는 대신 한 번에 두 자리를 처리합니다. 이것은 여전히 ​​올바르게 작동합니다 (나는 그 이유를 알기를 희망합니다!). 이 과정은베이스 100 기수 정렬을 사용하는 것과 완전히 동일합니다. 인접한 기수 10 자리를 그룹화하여 기본 100 자리를 만듭니다. 숫자를 3 개로 그룹화하면 또 다른 예로 기본 1000 기수 정렬이 제공됩니다. 자 이제 바이너리로 돌아가 봅시다. 각 비트는 2 진수입니다. 2 비트 그룹은 4 진수로 생각할 수 있습니다. 4 비트의 그룹은 16 진수로 간주 될 수 있으므로 8 비트 그룹은 256 진수로 구성됩니다.

귀하의 질문에 대답하기 위해 각각 8 비트 단위로 기수 10 기수 정렬 기수 정렬을 변환하는 방법은 기수 256 기수 정렬로 무엇을하는지 생각한 다음 그에 따라 알고리즘을 구현하는 것입니다 .