
정렬되지 않은 배열로 가정하고, 오름차순으로 정렬 프로세스로 가정. → [5, 2, 4, 6, 1, 3]
[5, 2, 4, 6, 1, 3]
[2, 5, 4, 6, 1, 3]
[2, 5]
4
[2, 4, 5, 6, 1, 3]
fun insertSort(intArray: IntArray) {
for(i in 1 until intArray.size) {
val temp = intArray[i]
var aux = i - 1
while((aux >= 0) && (intArray[aux] > temp)) { // 정렬된 부분과 비교
intArray[aux+1] = intArray[aux]
aux--
}
intArray[aux+1] = temp
}
}
indices
: IntRange
타입을 반환하며**,** 수신객체의 전체 범위 반환. 위 예제 에선 0..6until
: 범위의 마지막 요소를 포함하지 않음.
0..5
=> 0, 1, 2, 3, 4, 50 until 5
=> 0, 1, 2, 3, 4numbers.size
, numbers.lastIndex
을 주의해서 사용.