티스토리 뷰
1 2 3 4 5 6 7 8 9 10 11 12 13 | func selectionSort(array: inout [Int]){ for i in stride(from: array.count - 1, through: 1, by: -1){ var maxIndex = i for j in 0 ..< i { if(array[maxIndex] <= array[j]) { maxIndex = j } } let temp = array[maxIndex] array[maxIndex] = array[i] array[i] = temp } } | cs |
정렬할 배열의 맨 마지막 요소부터 시작하여 그를 제외한 나머지 요소와 값을 비교하여 정렬한다.
맨 앞의 요소는 비교할 필요가 없는데, 그 전까지 수행하면 정렬될 것이 명확하기 때문이다.
댓글