관리 메뉴

지나가는 이야기

[C] 오름차순 정렬하기 / 버블 정렬 사용하기 본문

Computer language : 컴퓨터 언어/C

[C] 오름차순 정렬하기 / 버블 정렬 사용하기

지나가는 이야기 2020. 10. 14. 12:33
728x90
반응형

 

C언어를 이용하여 배열에 있는 데이터 값을 오름차순으로 정렬하는 프로그램을 만들어 보겠습니다.

 

int data[8] = { 85,90,95,70,82,60,92,88 };
int data_size = sizeof(data) / sizeof(int);

먼저 정렬할 데이터는 int형 배열로 8개의 값을 초기화했습니다. 그리고 배열의 크기를 동적으로 받았습니다.

 

for (i = 0; i < data_size; i++) {
	for (j = 0; j < (data_size - 1) - i; j++) {
		if (data[j] > data[j + 1]) {	// 버블 정렬 사용
			temp = data[j];
			data[j] = data[j + 1];
			data[j + 1] = temp;
		}
	}
}

저는 위 코드에서 보이는 것처럼 for문을 사용을 하여 프로그램을 만들었고, 여러 가지 정렬 알고리즘 중에서 가장 간단한 버블 정렬을 사용했습니다.

 

 


#include <stdio.h>

int main(void)
{
	int data[8] = { 85,90,95,70,82,60,92,88 };		// 정렬할 배열
	int i, j, temp = 0;								// 변수 초기화

	printf("Before : ");
	int data_size = sizeof(data) / sizeof(int);
	// sizeof(score) / sizeof(int)는 score배열의 크기를 구하는 방법으로 이것을 이용해 배열의 크기를 가져옴
	
	for (i = 0; i < data_size; i++) {
		printf("%4d", data[i]);	// 정렬 전 배열값 출력
	}

	for (i = 0; i < data_size; i++) {
		for (j = 0; j < (data_size - 1) - i; j++) {
			if (data[j] > data[j + 1]) {	// 버블 정렬 사용
				temp = data[j];
				data[j] = data[j + 1];
				data[j + 1] = temp;
			}
		}
	}

	printf("\nAfter  : ");
	for (i = 0; i < data_size; i++) {
		printf("%4d", data[i]);	// 정렬 후 배열값 출력
	}
	printf("\n");
	return 0;

}

위 코드는 전체 코드입니다. 이렇게 간단한 버블 정렬을 사용해 오름차순으로 정렬하는 프로그램을 만들었습니다.

 

728x90
반응형
Comments