새소식

인기 검색어

컴퓨터공학/알고리즘

버블정렬

  • -
#include<stdio.h>

#define MAX_SIZE 10
#define SWAP(x, y, t) ((t) = (x),  (x) = (y), (y) = (t))

int list[MAX_SIZE] = { -25,23,4,5,-77,43,97,18,96,-95 };

void prn_sort(int list[], int n);
void bubble_sort(int list[], int n);

void main() {

	int n = MAX_SIZE;
	
	printf("\n-----정렬 전 데이터-----\n");
	prn_sort(list, n);
	bubble_sort(list, n);
	printf("\n-----정렬 후 데이터-----\n");
	prn_sort(list, n);

}

void bubble_sort(int list[], int n) {

	printf("\n-----버블 정렬 시작-----\n");

	int i, j, temp, exchg;

	// 정렬이 끝난 뒷쪽은 비교 X
	for (i = n - 1; i > 0; i--) {
		// 정렬이 일어났는지 확인하기 위한 변수
		exchg = 0;

		for (j = 0; j < i; j++) {
			if (list[j] > list[j + 1]) {
				SWAP(list[j], list[j + 1], temp);
				exchg++;
			}
		}
		// 버블 정렬이 중간에 완료되면 종료
		if (exchg == 0)
			break;
		prn_sort(list, n);

	}
	
	printf("-----버블 정렬 종료-----\n");

}

void prn_sort(int list[], int n) {
	for (int i = 0; i < n; i++)
		printf("%d ", list[i]);
	printf("\n");
}

'컴퓨터공학 > 알고리즘' 카테고리의 다른 글

선택정렬  (0) 2021.12.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.