본문 바로가기
프로그램/알고리즘

버블 정렬(Bubble Sort)

by 건티 2024. 10. 31.
728x90

정렬 알고리즘의 하나.

n 항목으로 이루어진 정렬 대상 리스트(집합)중의 항목을 수직 방향으로 배열하였다고 생각하면, 아래 끝에서부터 시작해서 인접하는 두 항목의 값을 비교하여 올바른 순서로 되어 있지 않으면 위치를 교환한다. 이렇게 인접하는 항목의 값을 비교해서 자리를 교환하는 과정을 리스트의 끝 항목까지 반복해서 제일 큰 값이 끝에 오도록 한다. 이 이름은 리스트 중에서 제일 가벼운(작은) 항목이 물속의 거품(bubble)처럼 제일 위로 상승하고, 그 다음 가벼운 것이 다음 자리로 상승하여 제일 무거운 것이 끝자리로 오기 때문에 붙었다.

 

출처]

한국정보통신기술협회 : 버블 정렬

 

Python)

#리스트에 있는 데이터를 오름차순 정렬합니다.

def BubbleSort(list):

    endIndex = len(list)-1

    for passNo in range(endIndex, 0, -1):

        for i in range(passNo):

            if list[i] > list[i+1]:

                list[i], list[i+1] = list[i+1], list[i]

    return list

 

C)

void BubbleSort(int n, int *R)

{

   int a, b;

   int imsi;

   int cnt;

 

   for(a=0;a<n-1;a++)

   {

      for(b=0;b<n-1; b++)

      {

         if(R[b]>R[b+1])

         {

            imsi=R[b+1];

            R[b+1]=R[b];

            R[b]=imsi;

         }

      }

   }

}

 

참고문제]

C언어 178제] 버블정렬

Python 328제] 버블정렬

 

 

※ 10월 25일은 독도의 날입니다.

대한민국의 아름다운 영토, 독도의 겨울

 

 

반응형

댓글