계수 정렬에서 배열로 숫자의 빈도를 세는 방식을 응용해서 코드를 작성해보았습니다. #include #include int N; int sum; int max = -5000, min = 5000; int count[10000]; int temp; int first_mode; int second_mode=999999; int mode; //count sort //ceil - 올림, floor - 내림 //반올림은 floor(x+0.5) int main(void) { scanf("%d", &N); for (int i = 0; i max) max = temp; if (temp < min) min = temp; t..
계수정렬은 n개의 입력원소가 있고 각각의 원소가 0부터 k 사이에 있는 정수이며. k=O(n) 일 때 Θ(n) 시간에 수행되는 정렬이다. 계수 정렬은 각 입력 원소 x에 대해 x보다 작은 원소의 개수를 센다. 이 수는 출력 배열에서 원소 x의 위치를 정하는 데 사용된다. 예를 들어, x보다 작은 원소가 5개라면 x는 출력 배열에서 6번째 자리가 된다. 값이 같은 원소가 여러 개 있는 경우에는 모두 같은 자리에 둘 수 없으므로 방법을 약간 고쳐야 한다. 같거나 작은 원소의 개수를 구하여야 하며, 안정성을 유지하기 위해 입력 원소를 뒤에서부터 확인하여 출력배열의 적절한 위치에 넣어야 한다. 계수정렬의 코드에서는 입력 배열과 출력배열, 같거나 작은 원소의 개수를 저장하기 위한 임시 배열이 필요하다. 입력 원소..
- Total
- Today
- Yesterday
- Push
- 구조체
- BOJ
- 건이의 특제 떡국 끓이기
- recursive
- gem5
- Git
- 구현
- 이분법
- 취미
- 큐
- 백트래킹
- 알고리즘
- 정렬
- 완전탐색
- BFS
- 백준
- 베릴로그
- 영어 어휘
- Verilog
- 너비우선탐색
- 재귀함수
- 애니메이션
- 이진탐색
- backtracking
- 스택
- C++
- 메이플스토리
- C언어
- 영화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |