장벚꽃박튤립

선택정렬 Selection Sort Java 본문

IT일반/알고리즘

선택정렬 Selection Sort Java

장벚꽃 2019. 6. 19. 08:37

Selection Sort

- 배열 혹은 리스트의 맨 앞을 선택하고, 나머지 원소들에서 원하는 값(최대 혹은 최소)을 찾아 서로 스왑

- 선택 과정을 처음원소부터 끝원소 -1 까지 ( 0 ~ arr.length )

- 시간복잡도 O(N^2)

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
public class SelectionSort {
    
    public void sort(int[] arr) {
        
        int min_index,temp;
        
        for(int i = 0; i<arr.length-1; i++) {
            
            min_index = i;
            
            for(int j = i+1; j<arr.length; j++) {
                if(arr[min_index] > arr[j]) {
                    min_index = j;
                }
            }
            
            temp = arr[i];
            arr[i] = arr[min_index];
            arr[min_index] = temp;
            
        }
        
    }
}
 
 

* 위 코드는 오름차순정렬이며, 가장 작은 값을 갖는 인덱스를 찾음

* sort 메소드 반환값은 void이지만, 파라미터가 참조형객체(배열)이므로 상관없다.

 

'IT일반 > 알고리즘' 카테고리의 다른 글

삽입정렬 Insertion Sort JAVA  (0) 2019.06.19
버블정렬 Bubble Sort JAVA  (0) 2019.06.19
합병, 힙 vs 퀵 정렬(Quick sort)  (0) 2018.12.20