계수 정렬(Count Sort)이란?특정한 조건이 부합할때만 사용할 수 있지만 매우 빠르게 동작하는 정렬 알고리즘계수 정렬은 데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을 때 + 가장 큰 데이터와 가장 작은 데이터가 백만정도 이하의 차이일때 효율적인 정렬 알고리즘이다.모든 범위를 담을 수 있는 크기의 리스트를 선언하여 구현한다.데이터의 개수가 N, 데이터 중 최대값이 K일 때 최악의 경우에도 수행 시간 O(N + K)를 보장한다. 예시를 통해 계수 정렬 이해하기아래의 표와 같은 성적을 가지고 있는 학생들이 있다고 가정하고, 오름차순으로 아래 성적을 정렬한다고 생각해보자. 누가 어떤 성적을 가지고 있는지는 중요하지 않다고 할 때, 계수 정렬을 이용하여 정렬하는 것이 가장 빠른 정렬 방법이다.7..
Algorithm
오랜만에 작성하는 알고리즘 포스팅:)오늘은 정렬중에 병합정렬 즉, 머지소트를 작성해보고자 한다.때때로 알고리즘 시험중에 외부 라이브러리를 사용할 수 없어 직접 구현해야하는 경우가 있다.그러니 이번기회에 개념을 정리하며 나와같이 머리에 넣어보도록 하자! 😚🧁 병합 정렬(merge sort) 알고리즘?존 폰 노이만(John von Neumann)이라는 사람이 제안한 방법병합 정렬은 분할정복 방식과 재귀 알고리즘을 이용한 정렬알고리즘이다.즉, 주어진 배열을 원소가 하나밖에 남지 않을 떄까지 계속 둘로 쪼갠 후에 다시 크기순으로 재배열 하면서 원래 크기의 배열로 합치는걸 반복한다.병합정렬의 구조상 최대한 작게 문제를 쪼개어 앞의 부분 리스트부터 차례대로 합쳐나가기 때문에 안정정렬 알고리즘이기도 하다. 😀?..