[Algo] 버블 정렬

GisangLee·2022년 8월 28일
0

알고리즘

목록 보기
3/5

1. 동작 원리

A

  • 1, 2번째 요소를 비교하고 정렬

B

  • 3, 4 번째 요소를 비교하고 정렬

C

  • 마지막까지 반복

D

  • 요소 전체가 정렬되지 않았다면 다시 1번부터 반복

A ~ C까지 한 번이라도 실행될 경우, 데이터에서 가장 큰 요소는 맨 마지막에 위치하게 된다.
즉, A ~ D까지 반복할 수록 큰 요소부터 마지막에 정렬되기 시작한다.


2. Code

import time

def bubble_sort(data):

  loop = len(data) - 1
  sorted = False
  
  while not sorted:

    sorted = True
    
    # 각 패스쓰루에서 모든 요소가 정렬되면 sorted는 True가 된다
    for i in range(loop):
      
      # 요소가 클 경우에만 ( 즉, 정렬할 필요가 있을 경우에만 sorted를 False로 지정 )
      if data[i] > data[i + 1]:
        data[i], data[i + 1] = data[i + 1], data[i]
        sorted = False

    loop -= 1
  return data


data = [65, 55, 45, 35, 25, 15, 10]

t1 = time.time()
result = bubble_sort(data)
print(result)
t2 = time.time()

print(f"실행시간 : {t2 - t1:.8f}")

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글