ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 선택 정렬
    프로그래밍/알고리즘 2018. 6. 4. 22:31

    안녕하세요 이번시간은 선택 정렬이라는 간단한 정렬을 배워볼까 합니다


    선택정렬은 정렬되지 않은 하나의 인덱스를 잡고서 다른 인덱스를 전체 탐색하여 기준에 따라 교환을 진행해주는 정렬 방식입니다


    public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            int[] arr = new int[scanner.nextInt()];
    
            for(int i=0;i<arr.length;i++){
                System.out.print(i+1+ "번째 값 입력 : ");
                 arr[i] = scanner.nextInt();
            }
    
            for (int i = arr.length - 1; 0 < i; i--) {
                for (int j = 0; j < i; j++) {
                    if (arr[i] < arr[j]) {
                        int temp = arr[j];
                        arr[j] = arr[i];
                        arr[i] = temp;
                    }
                }
            }
    
            System.out.println(Arrays.toString(arr));
        }


    문제의 해결을 위한 단계의 수는 이중 반복문이기에 선택정렬의 시간복잡도는 O(n^2)라고 표현됩니다


    선택정렬의 장점

    1. index의 교환횟수는 최대 n번이다

    2. 간단한 데이터의 교환에는 효율적


    단점

    1. 데이터의 수가 많아 질수록 비효율적인 자료구조


    출처 : http://egloos.zum.com/springmvc/v/567671

    '프로그래밍 > 알고리즘' 카테고리의 다른 글

    퀵 정렬 (Quick 정렬)  (1) 2018.06.19
    해시테이블이란?  (0) 2018.06.17
    버블 정렬  (0) 2018.06.05
    경우의 수 출력하기  (0) 2018.05.22
    KiwiJuice  (0) 2018.05.06

    댓글

Designed by Tistory.