프로그래밍/C

버블 정렬 C언어 코드

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

2023.02.16  최초 작성

 

#include <stdio.h>
void main() {
	int arr[15] = { 3,44,38,5,47,15,36,26,27,2,46,4,19,50,48 };
	int size = sizeof(arr) / sizeof(int);
	int tmp, num = 0;
	puts("정렬 전 ");
	for (int i = 0; i < size; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
	while (num < size-1) {
		printf("---- %d번째 반복 -----\n", num+1);
		for (int i = 0; i < size - 1 - num; i++) {
			printf("비교 %d > %d   ", arr[i], arr[i + 1]);
			if (arr[i] > arr[i + 1]) {
				tmp = arr[i];
				arr[i] = arr[i + 1];
				arr[i + 1] = tmp;
				printf("swap");
			}
			printf("\n");
		}
		for (int i = 0; i < size; i++) {
			printf("%d ", arr[i]);
		}
		puts("\n=======================");
		num++;
	}
	puts("정렬 후 ");
	for (int i = 0; i < size; i++) {
		printf("%d ", arr[i]);
	}
}

[실행 결과]

정렬 전
3 44 38 5 47 15 36 26 27 2 46 4 19 50 48
---- 1번째 반복 -----
비교 3 > 44
비교 44 > 38   swap
비교 44 > 5   swap
비교 44 > 47
비교 47 > 15   swap
비교 47 > 36   swap
비교 47 > 26   swap
비교 47 > 27   swap
비교 47 > 2   swap
비교 47 > 46   swap
비교 47 > 4   swap
비교 47 > 19   swap
비교 47 > 50
비교 50 > 48   swap
3 38 5 44 15 36 26 27 2 46 4 19 47 48 50
=======================
---- 2번째 반복 -----
비교 3 > 38
비교 38 > 5   swap
비교 38 > 44
비교 44 > 15   swap
비교 44 > 36   swap
비교 44 > 26   swap
비교 44 > 27   swap
비교 44 > 2   swap
비교 44 > 46
비교 46 > 4   swap
비교 46 > 19   swap
비교 46 > 47
비교 47 > 48
3 5 38 15 36 26 27 2 44 4 19 46 47 48 50
=======================
---- 3번째 반복 -----
비교 3 > 5
비교 5 > 38
비교 38 > 15   swap
비교 38 > 36   swap
비교 38 > 26   swap
비교 38 > 27   swap
비교 38 > 2   swap
비교 38 > 44
비교 44 > 4   swap
비교 44 > 19   swap
비교 44 > 46
비교 46 > 47
3 5 15 36 26 27 2 38 4 19 44 46 47 48 50
=======================
---- 4번째 반복 -----
비교 3 > 5
비교 5 > 15
비교 15 > 36
비교 36 > 26   swap
비교 36 > 27   swap
비교 36 > 2   swap
비교 36 > 38
비교 38 > 4   swap
비교 38 > 19   swap
비교 38 > 44
비교 44 > 46
3 5 15 26 27 2 36 4 19 38 44 46 47 48 50
=======================
---- 5번째 반복 -----
비교 3 > 5
비교 5 > 15
비교 15 > 26
비교 26 > 27
비교 27 > 2   swap
비교 27 > 36
비교 36 > 4   swap
비교 36 > 19   swap
비교 36 > 38
비교 38 > 44
3 5 15 26 2 27 4 19 36 38 44 46 47 48 50
=======================
---- 6번째 반복 -----
비교 3 > 5
비교 5 > 15
비교 15 > 26
비교 26 > 2   swap
비교 26 > 27
비교 27 > 4   swap
비교 27 > 19   swap
비교 27 > 36
비교 36 > 38
3 5 15 2 26 4 19 27 36 38 44 46 47 48 50
=======================
---- 7번째 반복 -----
비교 3 > 5
비교 5 > 15
비교 15 > 2   swap
비교 15 > 26
비교 26 > 4   swap
비교 26 > 19   swap
비교 26 > 27
비교 27 > 36
3 5 2 15 4 19 26 27 36 38 44 46 47 48 50
=======================
---- 8번째 반복 -----
비교 3 > 5
비교 5 > 2   swap
비교 5 > 15
비교 15 > 4   swap
비교 15 > 19
비교 19 > 26
비교 26 > 27
3 2 5 4 15 19 26 27 36 38 44 46 47 48 50
=======================
---- 9번째 반복 -----
비교 3 > 2   swap
비교 3 > 5
비교 5 > 4   swap
비교 5 > 15
비교 15 > 19
비교 19 > 26
2 3 4 5 15 19 26 27 36 38 44 46 47 48 50
=======================
---- 10번째 반복 -----
비교 2 > 3
비교 3 > 4
비교 4 > 5
비교 5 > 15
비교 15 > 19
2 3 4 5 15 19 26 27 36 38 44 46 47 48 50
=======================
---- 11번째 반복 -----
비교 2 > 3
비교 3 > 4
비교 4 > 5
비교 5 > 15
2 3 4 5 15 19 26 27 36 38 44 46 47 48 50
=======================
---- 12번째 반복 -----
비교 2 > 3
비교 3 > 4
비교 4 > 5
2 3 4 5 15 19 26 27 36 38 44 46 47 48 50
=======================
---- 13번째 반복 -----
비교 2 > 3
비교 3 > 4
2 3 4 5 15 19 26 27 36 38 44 46 47 48 50
=======================
---- 14번째 반복 -----
비교 2 > 3
2 3 4 5 15 19 26 27 36 38 44 46 47 48 50
=======================
정렬 후
2 3 4 5 15 19 26 27 36 38 44 46 47 48 50

 

 

728x90
반응형

 

728x90
반응형

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

연결 리스트 C언어 코드  (0) 2023.02.22
스택 C언어 코드  (0) 2023.02.21
선택 정렬 C언어 코드  (0) 2023.02.16
병합 정렬 C언어 코드  (0) 2023.02.16
삽입 정렬 C언어 코드  (0) 2023.02.16