Algorithm
[JAVA] 선택정렬 (오름차순, 내림차순)
trueman
2021. 12. 1. 15:50
728x90
728x90
선택정렬의 정의
선택 정렬은 오른쪽 리스트에서 가장 작은 숫자를 선택하여 왼쪽 리스트로 이동하는 작업을 되풀이한다.
선택 정렬은 오른쪽 리스트가 공백 상태가 될 때까지 이 과정을 되풀이하는 정렬 기법이다
선택정렬의 순서
1) 주어진 배열 중에 최소값을 찾습니다.
2) 그 값을 맨 앞에 위치한 값과 교체합니다. (pass)
3) 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체합니다.
4) 하나의 원소만 남을 때까지 위의 1~3 과정을 반복합니다.
선택 정렬의 장점
- 데이터의 양이 적을 때 좋은 성능을 나타냄.
- 작은 값을 선택하기 위해서 비교는 여러번 수행되지만 교환횟수가 적다.
선택 정렬의 단점
- 100개 이상의 자료에 대해서는 속도가 급격히 떨어져 적절히 사용되기 힘들다.
출처: https://devuna.tistory.com/28 [튜나 개발일기]
public class Sorting {
public static void main (String args[]) {
int data[] = {9, 6, 7, 3, 5};
for(int i=0; i<data.length-1; i++){
int min_index = i;
for(int j=i+1; j<data.length; j++){
if(data[min_index] > data[j]){
min_index = j;
}
}
int tmp = data[min_index];
data[min_index] = data[i];
data[i] = tmp;
}
for(int i=0; i<data.length; i++) {
System.out.print(data[i]);
if(i+1 != data.length) {
System.out.print(", ");
}
}
}
}
728x90
728x90