#include<stdio.h>
#define swap(a,b) {int t; t=a; a=b; b=t;} # 값 교환
void SelectionSort(int* a, int size) {
int min, i, j;
// 배열 전체를 순회
for (i = 0; i < size - 1; i++) {
min = i; // i 이후의 최소값을 찾기
for (j = i + 1; j < size; j++) {
if (a[min] > a[j])
min = j;
}
if (min != i)
swap(a[min], a[i]);
}
}
int main() {
int arr[] = { 64, 22, 10, 11, 25 };
SelectionSort(arr, 5);
for (int i = 0; i < 5; i++)
printf("%d \n", arr[i]);
}
def SelectionSort():
# 배열 전체 순회
for i in range(length-1):
mini=i # i 이후의 최소값 찾기
for j in range(i+1, length):
if arr[mini] > arr[j]:
mini=j
# 최소값을 현재값과 교환
if mini != i :
arr[mini], arr[i] = arr[i], arr[mini]
arr=list(map(int, input().split()))
length=len(arr)
SelectionSort()
print(arr)
처음에 임의로 최소값 mini에 i를 할당했다.
앞에부터 값을 채워나간다.
반응형
'Computer science > Algorithm' 카테고리의 다른 글
문자열 검색 (0) | 2021.03.05 |
---|---|
문자의 표현 (0) | 2021.03.02 |
Binary Search (0) | 2021.02.22 |
Sequential Search (0) | 2021.02.22 |
Counting Sort (0) | 2021.02.16 |