선택 정렬(Selection Sort)

dev Apr 13, 2018

선택 정렬의 수행 시간은 O(n^2)이다. 수를 비교하는 횟수가 전체 시간을 좌우한다. 코드는 다음과 같다.

// Sort.java

public class Sort {
    public void selectionSort(int data[], int MAX){
        int temp, minIndex;

        for(int i=0; i<MAX-1; i++){
            minIndex = i;

            for(int j=i+1; j<MAX; j++){
                if(data[minIndex] > data[j]){
                    minIndex = j;
                }
            }

            temp = data[minIndex];
            data[minIndex] = data[i];
            data[i] = temp;
        }
    }
}
//MainApp.java

public class MainApp {
    public static void main(String args[]){
        int data[] = {8, 31, 48, 73, 3, 65, 20, 29, 11, 15};

        System.out.println("Previous");
        for (int element: data) {
            System.out.print(element + " ");
        }

        Sort sort = new Sort();
        sort.selectionSort(data, data.length);

        System.out.println("\nAfter");
        for (int element: data) {
            System.out.print(element + " ");
        }
    }
}
// 출력 결과
Previous
8 31 48 73 3 65 20 29 11 15 
After
3 8 11 15 20 29 31 48 65 73 

cherrypick

체리픽이라는 단어 본연의 뜻은 안 좋은 의미이지만 저는 트렌디하고 많은 기술을 공부하고 내 거로 만들자는 뜻을 가지고 사용하고 있습니다.