Algorithm Sort 선택 정렬

선택 정렬

i 비교 횟수
1 n-1
2 n-2
3 n-3

총 비교 횟수
(n-1)+(n-2)+…+1 = n(n-1)/2

performace : O(n^2)
space compexity : O(1)


기본

  1. 아직 정렬되지 않은 값을 쭉 훑습니다.
  2. 가장 낮은 키 값을 찾습니다.
  3. 찾은 값과 정렬된 값 다음 값과 바꿉니다.(벽이 있다고 생각해봅시다.)

Code

for i in 0 ..< arr.count - 1 {
    var indexOfMinValue = i
    for j in i + 1 ..< arr.count {
        if  arr[j] < arr[indexOfMinValue] {
            indexOfMinValue = j
        }
    }

    arr.swapAt(i, indexOfMinValue)
}

바로가기

댓글남기기