목록Algorithm (2)
세리프 따라잡기
-9. 계수 정렬(counting sort) ㅇㅖ시 이전에 배운 정렬 알고리즘 중 가장 빠른 알고리즘은 O(N*logN)이 나오는 퀵, 병합, 힙 정렬 중 하나를 말할텐데, 이보다 빠르게 정렬을 해야 한다면 어떻게 해야 할까? ex. 1 3 2 4 3 2 5 3 1 2 3 4 4 3 5 1 2 3 5 2 3 1 4 3 5 1 2 1 1 1 위와 같이 데이터의 갯수가 30개가 있을 때의 예시를 보면 모든 데이터가 1~5 사이에 속했다는 특징이 있다. 이처럼 '범위 조건'이 있는 경우에 한해 굉장히 빠른 알고리즘[속도, 시간 복잡도가 O(N)]이 있는데 이 정렬이 계수 정렬이다. 이는 '크기를 기준으로' 세는 알고리즘이다. 이전에는 데이터들의 위치를 바꾸어가면서 정렬하는 알고리즘이었다면 계수 정렬은 크기를 ..
1. 알고리즘 소개 알고리즘이란 '문제를 해결하는 절차' - 알고리즘의 조건(입력, 출력, 유한성, 명백성, 효과성)을 만족해야 한다. [모든 명령은 실행 가능한 형태여야 한다.] - 알고리즘은 분석을 통해 좋고 나쁨을 평가할 수 있다. [ex. 정렬 알고리즘에서 막무가내로 정렬한다면..? X] - 알고리즘은 기초 프로그래밍(c언어)과 자료구조를 공부한 후에 배우면 좋다 - 알고리즘은 논리이며 수학이고 실질적인 개발에 적용되는 기초적인 아이디어이다. -1. 알고리즘이 쓰이는 곳 '개발'의 전체 과정에 사용된다. - 실제 프로그램을 개발할 때 효율적인 알고리즘을 적용함으로써 원하는 결과를 도출 - 스케줄 관리 프로그램: 달력에서 특정한 달에 해당하는 일 수는 어떻게 구하는지? - 내비게이션 프로그램: 여러..