Computer science/Algorithm

Selection Sort

잔망루피 2021. 2. 24. 21:38
#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