2014-03-03 3 views
0

이번 주에는 다양한 종류의 모든 것을 배웠습니다. Radix Sort의 효율성은 놀랍습니다. 하나; 특정 데이터에만 국한됩니다. 나는 그것이 문자열로 작동 할 수 있는지 궁금합니다. 예를 들어 "월요일", "금요일"및 "일요일"이 제 데이터 세트입니다. 누구든지 기수 정렬을 사용하여 정렬하는 방법을 알고 있습니까? Radix를 사용하여 String을 정렬하는 방법에 대한 기사를 본 적이 있거나 나와 공유하십시오.기수 정렬 문자열

+0

이것 좀보세요 : http://stackoverflow.com/questions/9638602 –

+0

사실, 이전에 이걸 발견했습니다. 그러나 제공된 링크가 있어도 대답은 간단하지 않습니다. (몸소). 그러므로 나는이 질문을 다시하고있다. 그래도 감사합니다. – user3096996

답변

0

예, 문자열을 기수 정렬로 정렬 할 수 있습니다. 사실 기수 정렬은 문자열에 매우 효과적입니다!

문자열 모음이 주어지면 먼저 문자열을 첫 글자로 정렬하고 (계산식 정렬 또는 삽입 정렬과 같은 원하는 정렬 알고리즘 사용) 문자열을 그룹화하여 기수별로 정렬 할 수 있습니다. 첫 번째 문자 다음에 각 그룹의 모든 문자열을 재귀 적으로 정렬합니다. (이것은 최상위 자릿수 기수 정렬 일 것입니다). 최소 유효 자리수 기수 정렬을 수행 할 수도 있습니다. 모든 문자열이 특수 문자 & # x2764;로 최대 문자열의 길이까지 패딩 된 것을 상상해보십시오. 사전 식으로 모든 다른 문자 앞에옵니다. 그런 다음 정규 LSD 기수 정렬을 수행하십시오. 완료되면 모든 것이 정렬 된 순서대로 수행됩니다.