정렬되지 않은 배열로 가정하고, 오름차순으로 정렬 프로세스로 가정. → [5, 3, 4, 1, 2]
[1]
[1, 3, 4, 5, 2]
[3, 4, 5, 2]
→ 2[2, 4, 5, 3]
[4, 5, 3]
→ 3fun main() {
println(selectionSort(intArrayOf(5, 3, 4, 1, 2)))
}
fun selectionSort(intArray: IntArray) {
for(i in intArray.indices) {
var currentIndex = i
for(j in i+1 until intArray.size) {
if(intArray[currentIndex] > intArray[j]) currentIndex = j // 최솟값 찾기
}
// 맨 앞과 교체
val temp = intArray[currentIndex]
intArray[currentIndex] = intArray[i]
intArray[i] = temp
}
}
indices
: IntRange
타입을 반환하며**,** 수신객체의 전체 범위 반환. 위 예제 에선 0..4