[C] 버블 정렬
버블정렬은 정렬을 수행하는 모양에서 붙여진 이름으로 인접한 두 요소의 값을 비교하여 교환하는 형태로 정렬을 수행한다. 단순정렬과의 차이는 값이 위치하는 순서나 치환하는 순서가 다를 뿐 알고리즘의 코드 구조는 동일하다. 오름차순 정렬의 경우 가장 큰 원소가 계속적인 치환을 통해 맨 끝으로 이동하게 된다. 배열의 첫 번째 루프는 두 번째 루프의 범위를 한정하며 비교할 요소들의 범위를 결정하며, 두 번째 루프는 바로 옆 요소와의 비교를 통해 값을 치환한다.
#include <stdio.h>
int a[10]={8,9,1,4,2,3,5,6,7,0};
void BubbleSort(int N){
int temp=0;
for (int i=N-1; i>0; i--){
for (int j=0; j<i; j++){
if (a[j] > a[j+1]){
temp = a[j];
a[j]= a[j+1];
a[j+1]=temp;
}
}
}
}
void PrintFunc(int N){
for (int i=0; i<N; i++){
printf("%d ", a[i]);
}
}
int main(void){
BubbleSort(10);
PrintFunc(10);
return 0;
}
0 1 2 3 4 5 6 7 8 9