-

[Sort] Selection Sort 본문

알고리즘 Note

[Sort] Selection Sort

Boogallee 2020. 3. 2. 22:46

- 선택 정렬은 작은 양의 데이터에 유용.

 

- 구현이 쉽고 제자리 정렬(추가 저장 공간이 필요 없음)

  --> bubble sort나 insertion sort 등도 마찬가지. 그냥 temp 변수 선언으로 치환 할 뿐.

 

알고리즘

 1. 목록에서 최소값을 찾는다.

 2. 찾은 최소값을 맨 앞의 값(혹은 현재 위치의 값)과 교체

 3. 배열의 전체 요소가 정렬될 때까지 이 과정을 반복.

 

- 시간 복잡도

   Worst: O(n^2)

   Best: O(n)

   Average: O(n^2)

   

- 공간 복잡도: O(1)

 

void selection_sort(int arr[], int size_arr) {

	for (int i = 0; i < size_arr; i++) {
		int min = i;   
		for (int j = i + 1; j < size_arr; j++) {
			if (arr[j] < arr[min]) {
				min = j;
			}
		}
		int temp = arr[min];
		arr[min] = arr[i];
		arr[i] = temp;
	}
	print_arr(arr, size_arr);
}

'알고리즘 Note' 카테고리의 다른 글

[Sort]Shell Sort  (0) 2020.03.02
[Sort]Insertion Sort  (1) 2020.03.02
[Sort] Bubble Sort  (0) 2020.03.02
[Sort] Stable / Unstable 정렬  (0) 2020.03.02
C/C++ 배열 사이즈 관련  (0) 2018.01.10
Comments