728x90
반응형
주어진 데이터 중 최소값을 찾음
- 최소값을 맨 앞에 위치한 값과 교환
- 정렬된 데이터를 제외한 나머지 데이터를 같은 방법으로 정렬
- 시간복잡도 : 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 |
출처: http://hahahoho5915.tistory.com/7?category=653519 [넌 잘하고 있어]
728x90
반응형
'Web Programming > java-jsp' 카테고리의 다른 글
java 삽입 정렬(Insertion Sort) (0) | 2018.08.29 |
---|---|
java 버블 정렬(Bubble Sort) (0) | 2018.08.29 |
java 면접 예상 질문 (0) | 2018.08.29 |
java 동기화, synchronized, wait()-notify() 메서드 (0) | 2018.08.29 |
java 스레드, Runnable 인터페이스, 싱글스레드, 멀티스레드, join메서드, sleep메서드 (0) | 2018.08.29 |