프로그래밍/C

선택 정렬 C언어 코드

swedu 2023. 2. 16. 09:00
728x90
반응형

2023.02.16  최초 작성

 

#include <stdio.h>
void main() {
	int arr[10] = { 4,19,31,7,21,35,37,22,2,5 };
	int min, tmp, p = 0;
	int size = sizeof(arr) / sizeof(int);
	puts("[정렬 전 숫자]");
	for (int i = 0; i < size; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
	while (p < size - 1) {
		min = p;
		printf("%d번째 반복 ------------\n", p + 1);
		printf("최소값 : %d\n", arr[min]);
		for (int i = p + 1; i < size; i++) {
			printf("최소값 찾기 %d > %d ", arr[min], arr[i]);
			if (arr[min] > arr[i]) {
				min = i;
				printf("-- 최소값 변경 : %d", arr[min]);
			}
			printf("\n");
		}
		tmp = arr[p];	arr[p] = arr[min];	arr[min] = tmp;
		printf("%d번째 정렬 성공 : arr[%d]=%d\n", p + 1, p, arr[p]);
		printf("%d번째 정렬 후 숫자 ---- ", p + 1);
		for (int i = 0; i < size; i++) {
			printf("%d ", arr[i]);
		}
		printf("\n\n");
		p++;
	}
	puts("[정렬 후 숫자]");
	for (int i = 0; i < size; i++) {
		printf("%d ", arr[i]);
	}
}

[실행 결과]

[정렬 전 숫자]
4 19 31 7 21 35 37 22 2 5
1번째 반복 ------------
최소값 : 4
최소값 찾기 4 > 19
최소값 찾기 4 > 31
최소값 찾기 4 > 7
최소값 찾기 4 > 21
최소값 찾기 4 > 35
최소값 찾기 4 > 37
최소값 찾기 4 > 22
최소값 찾기 4 > 2 -- 최소값 변경 : 2
최소값 찾기 2 > 5
1번째 정렬 성공 : arr[0]=2
1번째 정렬 후 숫자 ---- 2 19 31 7 21 35 37 22 4 5

2번째 반복 ------------
최소값 : 19
최소값 찾기 19 > 31
최소값 찾기 19 > 7 -- 최소값 변경 : 7
최소값 찾기 7 > 21
최소값 찾기 7 > 35
최소값 찾기 7 > 37
최소값 찾기 7 > 22
최소값 찾기 7 > 4 -- 최소값 변경 : 4
최소값 찾기 4 > 5
2번째 정렬 성공 : arr[1]=4
2번째 정렬 후 숫자 ---- 2 4 31 7 21 35 37 22 19 5

3번째 반복 ------------
최소값 : 31
최소값 찾기 31 > 7 -- 최소값 변경 : 7
최소값 찾기 7 > 21
최소값 찾기 7 > 35
최소값 찾기 7 > 37
최소값 찾기 7 > 22
최소값 찾기 7 > 19
최소값 찾기 7 > 5 -- 최소값 변경 : 5
3번째 정렬 성공 : arr[2]=5
3번째 정렬 후 숫자 ---- 2 4 5 7 21 35 37 22 19 31

4번째 반복 ------------
최소값 : 7
최소값 찾기 7 > 21
최소값 찾기 7 > 35
최소값 찾기 7 > 37
최소값 찾기 7 > 22
최소값 찾기 7 > 19
최소값 찾기 7 > 31
4번째 정렬 성공 : arr[3]=7
4번째 정렬 후 숫자 ---- 2 4 5 7 21 35 37 22 19 31

5번째 반복 ------------
최소값 : 21
최소값 찾기 21 > 35
최소값 찾기 21 > 37
최소값 찾기 21 > 22
최소값 찾기 21 > 19 -- 최소값 변경 : 19
최소값 찾기 19 > 31
5번째 정렬 성공 : arr[4]=19
5번째 정렬 후 숫자 ---- 2 4 5 7 19 35 37 22 21 31

6번째 반복 ------------
최소값 : 35
최소값 찾기 35 > 37
최소값 찾기 35 > 22 -- 최소값 변경 : 22
최소값 찾기 22 > 21 -- 최소값 변경 : 21
최소값 찾기 21 > 31
6번째 정렬 성공 : arr[5]=21
6번째 정렬 후 숫자 ---- 2 4 5 7 19 21 37 22 35 31

7번째 반복 ------------
최소값 : 37
최소값 찾기 37 > 22 -- 최소값 변경 : 22
최소값 찾기 22 > 35
최소값 찾기 22 > 31
7번째 정렬 성공 : arr[6]=22
7번째 정렬 후 숫자 ---- 2 4 5 7 19 21 22 37 35 31

8번째 반복 ------------
최소값 : 37
최소값 찾기 37 > 35 -- 최소값 변경 : 35
최소값 찾기 35 > 31 -- 최소값 변경 : 31
8번째 정렬 성공 : arr[7]=31
8번째 정렬 후 숫자 ---- 2 4 5 7 19 21 22 31 35 37

9번째 반복 ------------
최소값 : 35
최소값 찾기 35 > 37
9번째 정렬 성공 : arr[8]=35
9번째 정렬 후 숫자 ---- 2 4 5 7 19 21 22 31 35 37

[정렬 후 숫자]
2 4 5 7 19 21 22 31 35 37

 

 

728x90
반응형

 

728x90
반응형

'프로그래밍 > C' 카테고리의 다른 글

스택 C언어 코드  (0) 2023.02.21
버블 정렬 C언어 코드  (0) 2023.02.16
병합 정렬 C언어 코드  (0) 2023.02.16
삽입 정렬 C언어 코드  (0) 2023.02.16
배열과 포인터  (0) 2023.02.15