선택 정렬
- 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법
- 구현 방법이 복잡하고 시간 복잡도도 O(n^2)으로 효율적이지 않아 코딩 테스트에서는 많이 사용하지 않는다.
핵심 이론
- 최솟값 또는 최댓값을 찾고, 남은 정렬 부분의 가장 앞에 있는 데이터와 swap한다.
선택 정렬 과정
- 남은 정렬 부분에서 최솟값 또는 최댓값을 찾는다.
- 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택된 데이터를 swap한다.
- 가장 앞에 있는 데이터의 위치를 변경해(index++) 남은 정렬 부분의 범위를 축소한다.
- 전체 데이터 크기만큼 index가 커질 때까지, 즉 남은 정렬 부분이 없을 때까지 반복한다.
문제 풀이
https://yurison.tistory.com/438
[백준/자바] 1427 - 소트인사이드
선택 정렬을 이용한 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char[] cArr = sc.next().toCharArray(); int[] arr = new int[cArr.length]; for(int i=0; i
yurison.tistory.com
'공부 기록 > 알고리즘' 카테고리의 다른 글
Do it! 알고리즘 코딩테스트 with JAVA - (10) 퀵 정렬 (0) | 2023.08.02 |
---|---|
Do it! 알고리즘 코딩테스트 with JAVA - (9) 삽입 정렬 (0) | 2023.08.02 |
Do it! 알고리즘 코딩테스트 with JAVA - (7) 버블 정렬 (0) | 2023.08.02 |
순환(Recursion)의 개념과 기본 예제 3 (0) | 2023.08.01 |
순환(Recursion)의 개념과 기본 예제 2 (0) | 2023.08.01 |