반응형

1. 버블정렬이란

  인접한 두 원소를 비교하여 정렬하는 알고리즘

 

2. 버블정렬 특징

  코드가 단순하여 구현이 간단하다

  하나의 요소가 끝까지 이동하기 위해 모든 요소와 교환되어야 하기 때문에 속도가 느리다

 

3. 버블 정렬 파이썬 코드

for i in range(len(a)-1, 0, -1):
    for j in range(0, i):
        if a[j] > a[j+1]:
            a[j], a[j+1] = a[j+1], a[j]

뒤에서 부터 탐색하는 이유는 안정정렬을 위해서라고 한다.

 def BubbleSort(a):
     for i in range(len(a)):
         for j in range(i , len(a)):
             if a[i] > a[j]:
                 a[i],a[j] = a[j],a[i]
     return a

버블정렬을 접하고 스스로 다음과 같은 코드를 구현해보았다

하지만 해당 코드는 가장 인접한 요소 끼리의 교환이 아닌 인덱스i 를 가진 값과 j 를 가진 값을 교환하는 것이기 때문에 선택정렬과 버블정렬이 섞인 코드라고 볼 수 있다고 한다...

오름/내림차순 정렬을 하기 위해 스스로 처음 만들었던 코드 형태라 그런지 이 코드가 익숙해서 계속 사용하게 된다...

반응형

+ Recent posts