[자바 알고리즘] 49. 버블정렬

김건우's avatar
Feb 12, 2025
[자바 알고리즘] 49. 버블정렬
💡
  • 시작 주소 값에서부터 두 요소를 비교하여 큰 값을 뒤로 보낸다.
  • N 배열은 N - 1 회전으로 배열을 오름차순 정리가 된다.

1. 무작위 배열 만들고 회전 시켜보기

package Test01; public class Bubble { public static void main(String[] args) { int[] arr = {5, 7, 3, 4, 2}; final int N = arr.length; for (int a = 0; a < N - 1; a++) { System.out.println("도는 횟수"); System.out.println(); } } }
notion image

2. 반복문 안에서 반복

회전을 하면서 젤 큰 숫자가 젤 끝으로 정리 되어야 하기 때문에, 다시 반복 회전 할 때마다 1회 적게 반복해야한다.
package Test01; public class Bubble { public static void main(String[] args) { int[] arr = {5, 7, 3, 4, 2}; final int N = arr.length; for (int a = 0; a < N - 1; a++) { for (int b = 0; b < N - a - 1; b++) { System.out.println("도는 횟수"); } System.out.println(); } } }
notion image

3. 모듈화

public class Bubble { public static void main(String[] args) { int[] arr = {5, 7, 3, 4, 2}; final int N = arr.length; int temp; if (arr[0] > arr[1]) { temp = arr[0]; arr[0] = arr[1]; arr[1] = temp; } if (arr[1] > arr[2]) { temp = arr[1]; arr[1] = arr[2]; arr[2] = temp; } if (arr[2] > arr[3]) { temp = arr[2]; arr[2] = arr[3]; arr[3] = temp; } if (arr[3] > arr[4]) { temp = arr[3]; arr[3] = arr[4]; arr[4] = temp; } for (int a = 0; a < 5; a++) { System.out.print(arr[a] + " "); }
7이 제일 큰 수 이고, 의도했던 대로 젤 마지막에 왔다
7이 제일 큰 수 이고, 의도했던 대로 젤 마지막에 왔다

4. 규칙성 찾고 통합하기

public class Bubble { public static void main(String[] args) { int[] arr = {5, 7, 3, 4, 2}; final int N = arr.length; int temp; for (int a = 0; a < N - 1; a++) { for (int b = 0; b < N - a - 1; b++) { if (arr[b] > arr[b + 1]) { temp = arr[b]; arr[b] = arr[b + 1]; arr[b + 1] = temp; } } for (int c = 0; c < 5; c++) { System.out.print(arr[c] + " "); } System.out.println(); } } }
notion image
Share article

gunwoo