SH1R0_HACKER
버블 정렬 (bubble sort) 본문
버블정렬 (bubble sort)
- 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘
#include <stdio.h>
int main(void)
{
int temp=0;
int a[5]={9,6,7,3,5}; //오름차순으로 정렬 할 배열
for(int i=0;i<5;i++)
{
for(int j=0;j<5-(i+1);j++)
{
if (a[j]>a[j+1]) //a[j]가 a[j+1]보다 크면
{
temp=a[j+1]; //temp에 a[j+1]값을 넣는다.
//a[j]값이 a[j+1]값을 덮어 써 버리면 a[j+1]값이 없어지는걸 방지
a[j+1]=a[j]; //a[j+1]에 a[j]값을 넣는다.
a[j]=temp; //a[j]값에 temp값을 넣는다.
}
}
}
for(int i=0;i<5;i++)
{
printf("a[i]=%d\n",a[i]);
}
return 0;
}
위의 배열을 정렬해 보도록 하자.
버블정렬을 이용하면 위의 배열은 아래와 같은 과정으로 정렬된다.
1회전
a[5]={9,6,7,3,5}
a[5]={6,9,7,3,5}
a[5]={6,7,9,3,5}
a[5]={6,7,3,9,5}
a[5]={6,7,3,5,9}
2회전
a[5]={6,7,3,5,9}
a[5]={6,3,7,5,9}
a[5]={6,3,5,7,9}
3회전
a[5]={6,3,5,7,9}
a[5]={3,6,5,7,9}
a[5]={3,5,6,7,9}
오름차순 완성상태 : a[5]={3,5,6,7,9}
'Programming Language > C' 카테고리의 다른 글
C언어 :: 포인터 정리(1) - 포인터란? (0) | 2021.01.16 |
---|---|
C언어 :: 포인터 문제 (1) (0) | 2021.01.16 |
EOF (END-OF-FILE) (0) | 2020.10.18 |
c언어에서 정수를 스페이스로 구분해서 배열에 저장하는 법 (0) | 2020.10.18 |
입력한 크기만큼 메모리를 할당하여 배열처럼 사용하기 (0) | 2020.10.18 |