5-4. 버블 정렬

Dec 15, 2023
5-4. 버블 정렬

 

1. 알고리즘이란

알고리즘이란 절차를 자세하게 설명하는 것을 말한다. 절차는 대부분 함수로 표현한다.
 

2. 버블 정렬이란

서로 인접한 두 원소를 검사해서 정렬하는 알고리즘이다. 인접한 2개의 값(레코드)를 비교하여 크기가 순서대로 되어있지 않으면 서로 교환(스왑)한다.
 
ex) 5, 8, 2, 4, 3
 
1회전 (4바퀴)
  1. 5, 8 비교 → 변화없음
  1. 8, 2 비교 → 5,2,8,4,3
  1. 8, 4 비교 → 5,2,4,8,3
  1. 8, 3 비교 → 5,2,4,3,8
  1. 1회전의 변화 수는 n-1
 
💡
가장 큰 수는 맨 뒤로 이동한다.
 
5, 2, 4, 3, 8
2회전 (3바퀴)
  1. 5, 2 비교 → 2,5,4,3,8
  1. 5, 4 비교 → 2,4,5,3,8
  1. 5, 3 비교 → 2,4,3,5,8
 
2, 4, 3, 5, 8
3회전 (2바퀴)
  1. 2, 4 비교 → 변화없음
  1. 4, 3 비교 → 2,3,4,5,8
 

3. 예시

package ex03; public class BubbleEx01 { static void bubble(int[] arr) { final int N = arr.length; int temp; for (int loop = 1; loop < N; loop++) { for (int i = 0; i < N - loop; i++) { if (arr[i] > arr[i + 1]) { temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } } // 출력코드 for (int i = 0; i < N; i++) { System.out.print(arr[i] + " "); } } public static void main(String[] args) { int[] arr = {5, 8, 2, 4, 3}; BubbleEx01.bubble(arr); System.out.println(); int[] arr2 = {5, 8, 2, 4, 3, 10, 500, 7, 6}; BubbleEx01.bubble(arr2); } }
 
출력 결과
notion image
 
  • 정렬을 하는 이유
2진 검색으로 해당하지 않는 데이터는 버리며 검색할 수 있기 때문에
검색을 매우 빨리 할 수 있다.
데이터를 버리며 검색하기 때문에 로그는 천천히 올라간다.
 
Share article

oncehyun