티스토리 뷰
선택정렬이란?
선택 정렬(選擇整列, selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.
- 주어진 리스트 중에 최솟값을 찾는다.
- 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).
- 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으로 정렬하는 데에는 Θ(n2) 만큼의 시간이 걸린다.
출처 - 위키
출처는 위키가 최고다.
그럼 이제 자바로 구현해보자
public static void main(String[] arg){
int[] arr = {3,1,2,10,3,99, 19};
selectionSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectionSort(int[] arr) {
for(int i=0; i<arr.length; i++ ) {
int minIdx = i;
for(int j=i; j<arr.length;j++ ) {
if( arr[j] < arr[minIdx] ) {
minIdx = j;
}
}
// 제일 작은 인덱스와 i의 자리를 교체한다.
int temp = arr[i];
arr[i] = arr[minIdx ];
arr[minIdx] = temp;
}
}
'알고리즘' 카테고리의 다른 글
퀵소트 ( QuickSort) Java로 구현하기 (0) | 2018.03.17 |
---|---|
합병정렬 ( MergeSort) Java로 구현하기 (0) | 2018.03.17 |
삽입정렬(Insertion Sort) Java로 구현하기 (0) | 2018.03.17 |
버블 소트 ( BubbleSort ) Java 로 구현하기. (0) | 2018.03.17 |
이진 탐색 (binarySearch) Java로 구현하기 (0) | 2018.03.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Mergesort
- 알고리즘
- selectionSort
- 스프링
- 버블정렬
- 삽입정렬
- sockjs
- 퀵정렬
- 페이징
- 이진탐색
- binarysearch
- websocket
- 태그를 입력해 주세요.
- 팩토리얼
- Cookie
- BubbleSort
- 전화번호
- Java
- 합병정렬
- iBATIS
- dbconnection
- jquery
- Quicksort
- mysql
- spring
- Spring메일
- SQL
- 선택정렬
- InsertionSort
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함