본문 바로가기
코딩/이코테-파이썬

정렬 알고리즘: 계수정렬

by 철없는민물장어 2022. 7. 15.
728x90
반응형

계수정렬..

조건만 잘 맞으면 퀵정렬보다 빠른.. 그런 정렬.. 시간복잡도가 O(N+K)라고한다. N은 숫자개수 K는 최대숫자

 

근데 이게..

숫자들이 일단 정수여야함

그리고 배열을 하나 더 만들기 때문에 공간복잡도가 높음.

 

어떻게하냐면..

배열을 쭉 돌면서 어떤 숫자가 몇번 나왔는지를 다 카운트함

그러고나서 그냥 0부터 시작해서~최대값까지 각 숫자를 카운트만큼 출력해주면됨

 

array = [7,5,9,0,3,1,6,2,9,1,4,8,0,6,2]

count=[0]*(max(array)+1)
for i in range(len(array)):
    count[array[i]]+=1 #각 숫자가 나오는 횟수를 셈..

for i in range(len(count)):
    for j in range(count[i]):
        print(i, end='')

 

728x90
반응형

'코딩 > 이코테-파이썬' 카테고리의 다른 글

이진 탐색: 떡볶이 떡 만들기  (0) 2022.07.18
정렬 알고리즘: 이진 탐색  (0) 2022.07.17
정렬 알고리즘: 퀵 정렬  (0) 2022.07.15
정렬 알고리즘: 선택정렬  (0) 2022.07.15
BFS - 미로 찾기  (0) 2022.07.13

댓글