Untitled
Fold the Video
계수 정렬에 대해 계수 정렬은 특정한 조건이
계수 정렬
데이터중 최대값이 k일때
수행시간은 O(N+K)
계수 정렬
수 있습니다
인덱스는 0부터 9까지
각 인덱스가 데이터의 값에 해당하는 겁니다
배열에서 특정 인덱스에 접근할때 알고리즘 상으로 상수시간에 접근이 가능하다고 보기 때문에
값을 1씩 증가 시키면서 해당 데이터가
개수 값을 1증 가 시킵니다
마찬가지로 인덱스 5에 해당하는 그값을 1 증가 시킵니다
데이터인 9또한 마찬가지로 그인덱스의 값을
구한 뒤에는 실제로 정렬수행 결과를
출력하도록 만들면 되는 겁니다
1을 확인했을때는 1을 두번 출력
이어서 2를 확인했을때는 2를 두번 출력하는 식으로 이러한
정렬이 수행된 결과와
계수 정렬 몇번씩 등장했는지를
범위를 포함할수 있는
더 빠르게 동작한다는 점이 특징입니다
정리
개수정렬(카운팅 솔트)는 각각의 데이터가 몇번씩 등장했는지를 세는 방식으로 즉 카운트 방식으로 동작하는 정렬 알고리즘임
가장 작은데이터 부터 가장 큰 데이터까지의 모든 범위를 포함할수 있는 크기에 배열을 만들어야 하기 때문에 상대적으로 공간 복잡도가 높지만 퀵 정렬과 비교했을 때에도 조건만 만족한다면 더빠르게 동작한다는 점이 특징임
계수 정렬을 파이썬을
리스트를 만듭니다
모든 값은 0으로 초기화 할수 있도록 하구요
구성되어 있기 때문에 9에다가 1을 더한 값인 10만큼의 크기를 가지는
정렬정보를
나오게 됩니다
큰 데이터가 9라고 가정하고 작은 데이터가 0이라고
배열에 기록되어
결과가 나오게 됩니다
계수 정렬의 시간복잡도와 공간복잡도는 모두
카운트 값을 체크 여기에서 O(N) 이라고 할수 있겠구요
값 만큼
할 수 있습니다
N+K
O(N+K)
O(N+K)
이 K만큼의
O(N+K)
계수 정렬은 비효율성을 초래할수있습니다
999,999 가 있다고 했을때
계수 정렬
성적의 경우 일반적으로
0점부터 100점까지로 범위가
계수 정렬이
Last Updated:
Summarize & share videos seamlessly
Loading...