프로그래밍 언어/C & C++ 정리

버블 소트 Bubble Sort

뽀또치즈맛 2023. 1. 4. 12:44
버블 소트 Bubble Sort

버블 소트는 인접한 2개의 레코드를 비교하여 검사하는 알고리즘으로

알고리즘을 처음 접하는 이에게,

교육용 알고리즘으로 접하기 좋다.

 

정렬 방법으로는 두 숫자를 비교하고,

큰 숫자를 오른쪽 혹은 왼쪽으로 스왑하며 정렬하는 알고리즘이다.

 

회전 수 만큼 검수하는 수가 차감되어, 

결국에는 검수하는 정렬의 길이만큼 회전하여

속도의 문제에서는 실용적이지 못하다.

 


이하는 코드를 분석하며 더블 소트의 이해를 돕겠다.

 

< 예    시>

#include <stdio.h>

int swap (int *a, int *b)                                            // 주소값을 받아 포인터를 이용한 스왑함수이다.
{
      int temp = *a;
      *a = *b;
      *b = temp;
}


void main()

{
      int arr [10] = { 3, 5, 6, 8, 10, 1, 9, 2, 4, 5}
      int length = sizeof (arr) / sizeof (int);                  // 배열 전체의 사이즈와 배열의 자료형 사이즈를 나누어
                                                                                    배열의 길이를 구한다.     

      for ( int i = 0;  i < length - 1; i ++ )
      {      
            for ( int j = 0; < length - 1 - i ; j++ )
            {
                  if ( arr[ j + 1 ] < arr[ j ] )
                  {
                        swap ( &arr [ j ] , &arr [ j + 1 ] );            // 주소값을 주어 포인터를 이용한 함수를 만들어
                                                                                          자리를 바꿔준다
                  }
            }
      }

      for ( int i = 0 ; i < 10; i ++ )
      {
            printf( "%d", arr [ i ] );
      }
      
      return 0;
}

 

'프로그래밍 언어 > C & C++ 정리' 카테고리의 다른 글

동적 할당 함수  (0) 2023.01.07
c++ 함수의 특질  (0) 2023.01.07
함수  (0) 2023.01.06
포인터  (0) 2023.01.04
배열  (0) 2023.01.04