버블 정렬

Sunny·2022년 7월 18일
0

🌱 버블 정렬 (Bubble Sort)

데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식

  • 두 인접한 데이터의 크기를 비교해 정렬
  • 간단하게 구현 가능
  • 시간 복잡도 : O(n^2) (다른 알고리즘보다는 속도가 느림)
  • 루프(Loop)를 돌며 인접한 데이터 간 swap 연산으로 정렬

🌱 예시

🟩 1번째 Loop

42, 32, 24, 60, 15 ------- 42와 32 swap

32, 42, 24, 60, 15 ------- 42와 24 swap

32, 24, 42, 60, 15 ------- 24와 60은 그대로

32, 24, 42, 60, 15 ------- 60과 15은 swap

32, 24, 42, 15, 60 ------- 60은 정렬 완료


🟩 2번째 Loop

32, 24, 42, 15, 60 ------- 32와 24 swap

24, 32, 42, 15, 60 ------- 32와 42는 그대로

24, 32, 42, 15, 60 ------- 42와 15 swap

24, 32, 15, 42, 60 ------- 60은 정렬 완료

. . .
반복하다보면 정렬 완료 : 15, 24, 32, 42, 60


🌱 버블 정렬 과정

  1. 비교 연산이 필요한 루프 범위를 설정
  2. 인접한 데이터 값을 비교
  3. swap 조건에 부합하면 swap 연산 수행
  4. 루프 범위가 끝날 때 까지 2~3번 반복
  5. 정렬 영역을 설정. 다름 루프를 실행할 때는 이 영역을 제외
  6. 비교 대상이 없을 때까지 1~5번 반복

만약 특정한 루프의 전체 영역에서 swap이 한 번도 발생하지 않았다면 그 영역 뒤에 있는 데이터가 모두 정렬됐다는 뜻이므로 프로세스를 종료해도 됨

profile
개발에 재미를 붙여보기 :)

0개의 댓글