계수정렬

죽부인·2022년 12월 31일
0

📌코드

arr = [4, 7, 9, 1, 3, 5, 2, 3, 4]


def counting_sort(arr):
    count = [0] * (max(arr)+1)

    for num in arr:
        count[num] += 1

    sorted_list = list()

    for i in range(max(arr)+1):
        for _ in range(count[i]):
            sorted_list.append(i)
    return sorted_list


print(counting_sort(arr))

📌계수정렬

기존의 정렬같이 데이터를 비교하며 위치르 변경하는 알고리즘이 아니다.

조건

  1. 데이터의 크기 범위가 제한되어 있을때
  2. 데이터가 양의 정수 일때 ( 음,실수 x )
  3. 가장 큰 데이터와 가장 작은 데이터 차이 100만 넘지 않을때

정렬 방법

  1. 가장 큰 수만큼의 배열 생성
  2. 데이터의 값과 동일한 인덱스의 데이터를 1씩 증가
  3. 반복을 통해 인덱스를 인덱스값 만큼 출력
profile
연습장

0개의 댓글