선택 정렬
- Algorithm/Concept
- 2022. 3. 7.
반응형
728x90
반응형
선택 정렬
처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복한다.
구현 예시
0) 정렬할 데이터
1) 0번째 인덱스인 '7'을 대상으로, 1번째 ~ 마지막까지의 인덱스의 원소 중 작은 값을 선택한다.
2) 1번째 인덱스인 '5'를 대상으로, 2번째 ~ 마지막까지의 인덱스의 원소 중 작은 값을 선택한다.
3) 2번째 인덱스인 '9'를 대상으로, 3번째 ~ 마지막까지의 인덱스의 원소 중 가장 작은 값을 선택한다.
4) 이러한 과정을 반복하면 오름차순으로 정렬된다.
예제 코드
import java.util.stream.IntStream;
public class M9_선택정렬 {
public static void main(String[] args) {
int n = 10;
int[] arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};
for (int i = 0; i < n; i++) {
int min_index = i; // 가장 작은 원소의 인덱스
for (int j = i + 1; j < n; j++) {
if (arr[min_index] > arr[j]) {
min_index = j;
}
}
// swap
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
IntStream.range(0, n).mapToObj(i -> arr[i] + " ").forEach(System.out::println);
}
}
반응형
'Algorithm > Concept' 카테고리의 다른 글
퀵 정렬 (0) | 2022.03.07 |
---|---|
삽입정렬 (0) | 2022.03.07 |
다이나믹 프로그래밍 (0) | 2022.03.07 |
이진 탐색 (Binary Search) (0) | 2022.03.07 |
BFS (Breadth-First Search) (0) | 2022.03.07 |