버블 정렬이란 인접해 있는 두 개의 값을 비교해서 자료 교환을 하는 것이다.
오름차순은 두 개의 값을 비교해서 큰 값을 오른쪽으로 보내는 방식이다.
내림차순은 두 개의 값을 비교해서 작은 값을 오른쪽으로 보내는 방식이다.
//버블 정렬 프로그램
#include <stdio.h>
void bubble_sort(int array[], int count);
void swap(int *px, int *py);
void printVector(int V[], int n);
int main()
{
int vector[5] = {5, 4, 3, 2, 1};
bubble_sort(vector, 5);
}
void bubble_sort(int array[], int count)
{
int i, j;
for(i=0; i<count-1 ; i++)
{
for(j=0; j<count-1-i; j++)
{
if(array[j]>array[j+1])
{
swap(&array[j], &array[j+1]);
printVector(array, 5);
}
}
printf("\n");
}
}
void swap(int *px, int *py)
{
int temp = *px;
*px = *py;
*py = temp;
}
void printVector(int V[], int n)
{
int i;
for(i=0; i<n; i++)
{
printf("%5d", V[i]);
}
printf("\n");
}
array[]는 배열처럼 보이지만 포인터다
오름차순은 두 개의 값을 비교해서 큰 값을 오른쪽으로 보내는 방식이다.
내림차순은 두 개의 값을 비교해서 작은 값을 오른쪽으로 보내는 방식이다.
//버블 정렬 프로그램
#include <stdio.h>
void bubble_sort(int array[], int count);
void swap(int *px, int *py);
void printVector(int V[], int n);
int main()
{
int vector[5] = {5, 4, 3, 2, 1};
bubble_sort(vector, 5);
}
void bubble_sort(int array[], int count)
{
int i, j;
for(i=0; i<count-1 ; i++)
{
for(j=0; j<count-1-i; j++)
{
if(array[j]>array[j+1])
{
swap(&array[j], &array[j+1]);
printVector(array, 5);
}
}
printf("\n");
}
}
void swap(int *px, int *py)
{
int temp = *px;
*px = *py;
*py = temp;
}
void printVector(int V[], int n)
{
int i;
for(i=0; i<n; i++)
{
printf("%5d", V[i]);
}
printf("\n");
}
#include <stdio.h> |
'C 언어 > 임베디드 C' 카테고리의 다른 글
구조체의 초기화 (0) | 2011.07.07 |
---|---|
2차원 배열을 초기화하여, 화면에 출력 (0) | 2011.07.01 |
리다이렉션(redirection) (0) | 2011.06.29 |
구조체를 사용한 파일 입출력 (0) | 2011.06.29 |
malloc(), free() (0) | 2011.06.22 |