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
반응형