[알고리즘] 정렬

[알고리즘] 정렬

728x90

선택 정렬

정의 : 첫번째 자리에 가장 값은 값을 찾아 넣고 다음 Index 에 그 다음 작은 값을 찾아서 넣는다. 이 과정을 배열이 끝날 때까지 반복 하고 정렬된 배열을 출력 한다.

코드(KOTLIN) : 아래 코드에서 알 수 있을 듯 이중 for 루프를 이용해서 위의 그림의 동작을 수행한다. 시간 복잡도는 O(N^2) 를 가진다.

import java.io.* import java.util.* fun main(args: Array) { val br = BufferedReader(InputStreamReader(System.`in`)) val n = br.readLine().toInt() val st = StringTokenizer(br.readLine()) var numbers = IntArray(n) { st.nextToken().toInt() } // 선택 정렬 for (i in 0 until n - 1) { var min = numbers[i] for (j in (i + 1) until n) { if (min > numbers[j]) { // 현재 값보다 작은 값과 위치 변경 val temp = min numbers[i] = numbers[j] numbers[j] = temp break } } } for (num in numbers) { print("$num ") } }

from http://jefflim-81.tistory.com/41 by ccl(A) rewrite - 2021-11-30 18:03:02