알고리즘

예시

![](https://velog.velcdn.com/images/yc1303/post/f3f69a3a-4f60-4221-a215-79388f6a91d3/insertion sort.gif)

정렬되지 않은 배열로 가정하고, 오름차순으로 정렬 프로세스로 가정. → [5, 2, 4, 6, 1, 3]

  1. 두 번째 원소부터 시작함. 5와 2를 비교하여 정렬하는 위치를 결정함.
    1. before : [5, 2, 4, 6, 1, 3]
    2. after : [2, 5, 4, 6, 1, 3]
  2. 정렬된 배열 기반으로 값의 크기를 비교하여 다시 재정렬 수행.
    1. before sorted : [2, 5]
    2. element : 4
    3. after sotred : [2, 4, 5, 6, 1, 3]
  3. 위 과정을 반복하여 정렬을 수행.

소스코드 - Kotlin

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
    }
}

범위 및 함수 사용시 유의사항

장점