반응형
버블 정렬
- 두 인접한 데이터의 크기를 비교해 정렬하는 방법
- 루프를 돌면서 인접한 데이터 간의 swap 연산으로 정렬
- 시간복잡도 O(n^2)
- 정렬 과정
1) 비교 연산이 필요한 루프 범위를 설정
2) 인접한 데이터 값을 비교
3) swap 조건에 부합하면 swap 연산 수행
4) 루프 범위 끝날 때까지 2~3을 반복
5) 정렬 영역 설정, 다음 루프 실핼할 때 해당 영역 제외
6) 비교 대상이 없을 때까지 1~5를 반복
선택 정렬
- 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법시간복잡도 O(n^2)
- 시간복잡도 O(n^2)
- 정렬 과정
1) 남은 정렬 부분에서 최솟값 또는 최댓값을 찾음
2) 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택된 데이터를 swap
3) 가장 앞에 있는 데이터의 위치를 변경해(index++) 남은 정렬 부분의 범위를 축소
4) 전체 데이터 크기만큼 index가 커질 때까지, 즉 남은 정렬 부분이 없을 때까지 반복
ref)
https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html
반응형
'코테 준비 > Baekjoon Algorithm' 카테고리의 다른 글
[Day05 - 1377번] 버블 소트 (0) | 2024.02.13 |
---|---|
[Day05 - 2750번] 수 정렬하기 (0) | 2024.02.13 |
[이론] 트리 (1) | 2023.12.30 |
[백준(BOJ)] 10828번 C++ 풀이 (0) | 2022.02.27 |
[백준(BOJ)] 2750번 C++ 풀이 (0) | 2021.11.24 |