-
선택 정렬프로그래밍/알고리즘 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