#1 알고리즘
#1-1
#1-2
#2 코드
#2-1 자바
public static void selectionSort(int[] array, int startIndex, int endIndex) {
for(int maxIndex = endIndex; startIndex < maxIndex; maxIndex--) {
// 배열을 순회하며 가장 값이 큰 원소의 index를 구한다
int indexOfLargest = startIndex;
for(int i = (startIndex + 1); i <= maxIndex; i++) {
if(array[indexOfLargest] < array[i]) {
indexOfLargest = i;
}
}
// 가장 값이 컸던 원소와 맨 끝 index 원소의 값을 서로 교환한다
int temp = array[maxIndex];
array[maxIndex] = array[indexOfLargest];
array[indexOfLargest] = temp;
}
}
#2-2 코틀린
fun selectionSort(array: Array<Int>, startIndex : Int, endIndex : Int) {
for(maxIndex : Int in endIndex downTo (startIndex + 1)) {
// 배열을 순회하며 가장 값이 큰 원소의 index를 구한다
var indexOfLargest = startIndex;
for(i : Int in (startIndex + 1)..maxIndex) {
if(array[indexOfLargest] < array[i]) {
indexOfLargest = i
}
}
// 가장 값이 컸던 원소와 맨 끝 index 원소의 값을 서로 교환한다
val temp = array[maxIndex]
array[maxIndex] = array[indexOfLargest]
array[indexOfLargest] = temp
}
}
#3 요약
선택 정렬은 가장 큰 값 하나를 '선택'해서, 뒤쪽에 차곡차곡 쌓는 정렬이다.
#4 이 개념이 사용된 글
'깨알 개념 > 알고리즘' 카테고리의 다른 글
정렬 - 병합 정렬 (Merge Sort) (0) | 2023.11.14 |
---|---|
정렬 - 버블 정렬 (Bubble Sort) (0) | 2023.11.13 |
중복된 원소 값이 있는 경우의 이진 탐색 (Binary Search) (0) | 2023.11.07 |
이진 탐색 (Binary search) (0) | 2023.11.06 |
배열의 길이(length)와 원소의 순번(index) (0) | 2023.11.01 |