🌸선택 정렬(Insertion Sort)이란?
선택 정렬은 기본 정렬 중 하나입니다.
주어진 배열에서 최솟값을 찾은 후 맨 앞에 위치한 값과 교체해줍니다.
나머지 값들도 같은 방법으로 교체해주는 알고리즘입니다.
선택 정렬 알고리즘 예제
선택 정렬 알고리즘 코드(JAVA)
public class SelectionSort {
public static void main(String[] args) {
int arr[] = {6,11,1,3,5}; //정렬할 배열
int n = arr.length; //배열의 길이
//최솟값을 알아내는 for문
for(int i=0; i< n-1; i++) {
int minIndex = i;
for(int j=i+1; j<n; j++) {
if(arr[j] < arr[minIndex]) {
minIndex = j;
}
}
//최솟값과 현재값의 위치를 교체해준다.
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
//arr출력
String []in = {"1번째","2번째","3번재","4번째","5번째"};
for(int i=0; i<arr.length; i++) {
System.out.println(in[i]+"\t"+arr[i]);
}
}
}
- 선택정렬은 O(n^2) 만큼의 시간이 걸립니다.
- 선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능이 좋다는 장점이 있습니다.
반응형
'자료구조' 카테고리의 다른 글
[자료구조] AVL트리란? LL, LR, RR, RL? (2) | 2023.07.25 |
---|---|
[자료구조] 특수정렬 - 계수 정렬, 기수 정렬, 버킷 정렬이란? (1) | 2023.07.17 |
[자료구조] 고급 정렬 - 병합 정렬, 퀵 정렬, 힙 정렬, 셸 정렬이란? (0) | 2023.07.16 |
[자료구조] 버블 정렬(Bubble Sort)이란 with JAVA (0) | 2023.07.16 |
[자료구조] 삽입 정렬(Insertion Sort)이란? with JAVA (0) | 2023.07.14 |