SH1R0_HACKER

버블 정렬 (bubble sort) 본문

Programming Language/C

버블 정렬 (bubble sort)

SH1R0_HACKER 2020. 10. 18. 15:13

버블정렬 (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}