반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 스프링부트공부
- nestjs공부
- JPA 공부
- JPA스터디
- 알고리즘공부
- JPA예제
- querydsl
- 자바공부
- nestjs
- 플러터 개발
- 기술공부
- 자료구조공부
- 스프링
- 코테공부
- 프로그래머스
- JPA공부
- 코테준비
- 스프링공부
- 스프링부트
- DDD
- 스프링 공부
- Flutter
- JPA
- Axon framework
- 플러터 공부
- Kafka
- 카프카
- 기술면접공부
- K8S
- nestjs스터디
Archives
- Today
- Total
DevBoi
[카운팅 정렬과 퀵정렬] 본문
반응형
1. 카운팅 정렬
1. 숫자가 등장한 횟수 를 다른 한가지의 배열에 넣는다
2. 다른 한가지의 배열의 누적합으로 값을 update해준다.
3. 기존 숫자들이 있던 배열 마지막부터, 새로 생성한 배열을 보면서, 정렬 index를 찾는다
ex. 4가 5번 등장하면, arr[5] =4 이런식으로 (만약 중복되는 값이 있어, index에 값이 이미있다면, -1 을 해준다.)
이해가 잘되는 애니메이션 링크
https://www.cs.miami.edu/home/burt/learning/Csc517.091/workbook/countingsort.html
2.퀵 정렬
일반적으로 더 빠르다.
퀵정렬은 우선 배열의 0번째를 pivot으로 둔다.
그리고, 2개의 포인터를 둔다 (흔히 high, low로 사용한다.)
해당 high는 오른쪽 끝 low는 왼쪽 끝에서 부터 서로 엇갈릴때까지 Pivot보다 작은수, 큰 수를 찾 고 (high에서는 작은수, low에서는 큰수)찾게되면 이 두개의 값을 바꿔준다.
최종적으로 엇갈리면 high 즉, 마지막으로 세팅된 작은값과 pivot을 바꿔준다. (내림 차순의 경우)
이렇게 되면 pivot 기준으로 배열이 두개로 쪼개지게 되는데 이 쪼개 진 배열에서도 같은 과정을 반복한다.
반복하면서 계속 정렬이 된다면, 다시 이걸 합쳐주면서 마무리를 한다.
반응형
'Algorithm > [Etc]' 카테고리의 다른 글
BOJ1753 (0) | 2022.04.19 |
---|---|
[최단거리] BOJ1753 (0) | 2022.04.09 |
선택 정렬 (0) | 2021.09.28 |
버블 정렬 (0) | 2021.09.28 |
알고리즘 공부 [힙] (0) | 2021.09.27 |