기수 정렬

dkdiek·2024년 7월 27일

코딩테스트

목록 보기
14/20

기수정렬 radix sort은 값은 비교하지 않는 특이한 정렬입니다. 기수 정렬은 값을 놓고 비교할 자릿수를 정한 다음 해당 자릿수만 비교합니다.
기수 정렬의 시간 복잡도는 O(Kn)으로, 여기서 k는 데이터의자릿수를 말합니다
예를 들어 234, 123 비교시 2와1 3과3 4와3 만 비교합니다
시간 복잡도가 가장 짧은 정렬입니다 데이터 개수가 너무 많으면 기수 정렬 알고리즘을 활용해 보세요.

핵심 이론

10개의 큐를 이용하며 각 큐는 값의 자릿수를 대표합니다.

  • 일의 자릿수를 기준으로 데이터 저장 끝자리가 0부터 9 각각
  • 일의 자릿수를 기준으로 정렬 80, 03, 23, 24, 16, 77, 18, 88
  • 십의 자릿수를 기준으로 데이터 저장 queue는 First in first out
    0부터 9 각각 03 , 16, 18, 23, 24, 77, 80 ,88

정렬 수행 방식

원본 배열은 16, 80, 18, 77, 03, 24, 88, 23입니다.
일의 자릿수 기준으로 배열 원소를 큐에 집어 넣습니다.
그런 다음 0번째 큐부터 9번째 큐까지 pop을 진행합니다.
그 결과 80, 03, 23, 24, 16, 77, 18, 88 완성
이어서 십의 자릿수를 기준으로 가튼 과정 진행
마지막 자릿수를 기준으로 정렬할 때까지 앞의 과정을 반복

0개의 댓글