선택정렬이란?
처음 배열 탐색 시 최소값을 찾은 후 가장 첫번째 배열값과 자리를 바꾸는 방식.
시간복잡도
O(n^2)이며 큰 데이터셋에는 적합하지 않다. 따라서 큰 데이터셋에는 퀵, 힙, 병합정렬등을 고려.
선택정렬 흐름도
자바 구현
public class Selection_Sort {
public static void selection_sort(int[] a) {
selection_sort(a, a.length);
}
private static void selection_sort(int[] a, int size) {
for(int i = 0; i < size - 1; i++) {
int min_index = i;
// 최솟값을 갖고있는 인덱스 찾기
for(int j = i + 1; j < size; j++) {
if(a[j] < a[min_index]) {
min_index = j;
}
}
// i번째 값과 찾은 최솟값을 서로 교환
swap(a, min_index, i);
}
}
private static void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
[ 백준 ] 24511 queuestack (silver3, 큐/스택, java) (0) | 2024.10.30 |
---|---|
[ 알고리즘 ] 백트래킹 (Backtracking) (0) | 2024.05.20 |
[ 알고리즘 ] 이분=이진 탐색 ( Binary Search ) (0) | 2024.04.08 |
[ 알고리즘 ] 너비 우선 탐색 (BFS) (0) | 2024.04.08 |
[ 알고리즘 ] 버블정렬 (Bubble Sort) (0) | 2024.03.23 |