2011-01-15 5 views
2

기수는 플로트 데이터를 어떻게 정렬합니까? 예를 들어, 12.4, 45.13 등등. 먼저 소수점의 오른쪽 또는 소수점의 왼쪽을 먼저 읽을 것인가? 그리고 소수점의 오른쪽을 읽으면 어떻게 처리 할 것인가? 먼저 맨 먼저 읽었습니까?기수 부유 데이터 정렬

답변

2

이 페이지의 토론을 참조하십시오.

http://codercorner.com/RadixSortRevisited.htm

기본적으로, 컴퓨터는, 특정 포맷에 부동 소수점 저장한다. 그들은 45.13으로 쓰지 않습니다. 결과적으로, 그런 식으로 생각하면 그것이 실제로 어떻게 작동하는지와 관련이 없습니다.

무시하면 기수 정렬은 가장 중요한 부분부터 먼저 살펴야합니다. 부동 소수점 숫자에서 가장 왼쪽 숫자입니다. 근본적으로, 우리는 모든 숫자를 소수점 앞에 같은 자릿수로 채 웁니다. 그런 다음 왼쪽에서 오른쪽으로 자릿수를 읽습니다.

1

기수 정렬은 숫자의 2 진 표현에서 작동하고 객체가 큰 2 진 정수인 것처럼 정렬합니다.

실제 정수 및 문자열의 경우 이진 표현은 우리가 예상하는 조합 순서와 상당히 비슷하므로 기수 정렬은 다소 특이한 경우 흥미 롭습니다.

부동 소수점이 올바른 방향으로 이동하는 한 기수 정렬은 부호 비트를 거꾸로 처리한다는 점을 제외하면 잘 작동 할 수 있습니다.

내부 바이너리 표현에서 FP 값은 부호 비트, 약 10 비트의 지수 및 약 20 또는 50 비트가 "분수"또는 가수입니다.

S E E E E E E E E M M M M M M M M M M M M M M M . . . 

지수는 바이어스 가수를하지대로 제대로 정렬되도록 작은 값, 정말 가장 부정적인 지수되도록.

모든 숫자가 양수 또는 음수이거나 부호 비트가 처음으로 반전되고 스캔이 왼쪽에서 오른쪽 인 경우 기수 정렬이 FP 숫자에서 작동한다고 생각합니다.

관련 문제