- 주어진 데이터 중 최소값을 찾음
- 최소값을 맨 앞에 위치한 값과 교환
- 정렬된 데이터를 제외한 나머지 데이터를 같은 방법으로 정렬
- 시간복잡도 : O(n^2)
[1회전]
[2회전]
[3회전]
[4회전]
선택 정렬의 장점
- 데이터의 양이 적을 때 좋은 성능을 나타냄.
- 작은 값을 선택하기 위해서 비교는 여러번 수행되지만 교환횟수가 적다.
선택 정렬의 단점
- 100개 이상의 자료에 대해서는 속도가 급격히 떨어져 적절히 사용되기 힘들다.
JAVA 소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public class Selection { public void sort(int[] data){ int size = data.length; int min; //최소값을 가진 데이터의 인덱스 저장 변수 int temp; for(int i=0; i<size-1; i++){ // size-1 : 마지막 요소는 자연스럽게 정렬됨 min = i; for(int j=i+1; j<size; j++){ if(data[min] > data[j]){ min = j; } } temp = data[min]; data[min] = data[i]; data[i] = temp; } } public static void main(String[] args) { Selection selection = new Selection(); int data[] = {66, 10, 1, 99, 5}; selection.sort(data); for(int i=0; i<data.length; i++){ System.out.println("data["+i+"] : " + data[i]); } } } | cs |
'JAVA > 기타' 카테고리의 다른 글
Java - String(문자열) .isEmpty() vs .isBlank() 차이점 (0) | 2022.12.15 |
---|---|
Springboot에서 CircuitBreaker 설명 및 사용법 (0) | 2022.11.29 |
퀵 정렬(Quick Sort) (9) | 2015.10.26 |
삽입 정렬(Insertion Sort) (5) | 2015.10.26 |
버블 정렬(Bubble Sort) (2) | 2015.10.25 |