반응형
버블 정렬은 정렬되지 않은 데이터에 대하여
인접한 두개의 데이터를 지속적으로 비교해 나가며 정렬하는 방식이다.
첫번째 인덱스부터 시작하여 오름,또는 내림으로 정렬할 시
인접한 두번째 인덱스의 자료와 비교하여 교환하고 비교해 나가면서 정렬한다.
오름차순과 내림차순의 차이는 조건의 차이 하나밖에 없으므로 동일하다고 보면 된다.
아래 소스는 버블 정렬에 대한 헤더파일과 소스파일이다.
Bubble_Sort.h
#ifdef _BUBBLE_SORT_ #endif _BUBBLE_SORT_ void Asc_Bubble_Sort(int data[], int size); //오름차순 void Des_Bubble_Sort(int data[], int size); //내림차순 void Prt_Bubble_Sort(int data[], int size); //출력함수
Bubble_Sort.C
#include<stdio.h> #include"Bubble_Sort.h" //오름차순 정렬 void Asc_Bubble_Sort(int data[], int size) { int i, j; int temp; for(i=size-1;i!=0;i--) { for(j=0;j<i;j++) { if(data[j]>data[i]) { temp=data[i]; data[i]=data[j]; data[j]=temp; } } } } //내림차순 정렬 void Des_Bubble_Sort(int data[], int size) { int i, j; int temp; for(i=size-1;i!=0;i--) { for(j=0;j<i;j++) { if(data[j]<data[i]) { temp=data[i]; data[i]=data[j]; data[j]=temp; } } } } void Prt_Bubble_Sort(int data[],int size) { int i; for(i=0;i<size;i++) printf("%d\t", data[i]); }
반응형
'ETC > Data Struct | Algorithm' 카테고리의 다른 글
정렬 - 삽입 정렬 (0) | 2012.09.11 |
---|---|
정렬 - 퀵 정렬(Quick Sort) (0) | 2012.09.10 |
정렬 - 선택 정렬 (Selection Sort) (0) | 2012.09.10 |
연결리스트 (LinkedList) (0) | 2012.09.09 |
순차 검색 (0) | 2012.09.09 |