반응형
일반적으로 알고리즘을 공부할 때 가장 먼저 풀어보는 문제는 "정렬(sort)"문제이다.
다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요
1 10 5 8 7 6 4 3 2 9
선택 정렬
시간복잡도: O(N^2)
- 가장 작은 것을 선택해서 제일 앞으로 보내는 알고리즘
- 가장 원시적이고 기초적인 방법
var min: Int
var index: Int
var temp: Int
var arr = [1,10,5,8,7,6,4,3,2,9]
for i in 0...10 {
min = 9999
for j in i...10 {
if min > arr[j] {
min = arr[j]
index = j
}
}
temp = arr[i]
arr[i] = arr[index]
arr[index] = temp
}
위 코드에서 min은 가장 작은 숫자를 일시적으로 담는 변수이고, temp는 배열에서 두 숫자의 위치를 서로 바꾸기 위해 사용하는 변수이다.
반응형
'알고리즘' 카테고리의 다른 글
알고리즘 - 소수 판별법 알고리즘 (0) | 2022.09.06 |
---|---|
알고리즘 - [day1]버블 정렬 (0) | 2022.09.02 |
알고리즘 - [day1]알고리즘의 개요 (0) | 2022.09.02 |