inblog logo
|
oncehyun
    java

    5-4. 버블 정렬

    Dec 15, 2023
    5-4. 버블 정렬
    Contents
    1. 알고리즘이란2. 버블 정렬이란3. 예시

     

    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
    Contents
    1. 알고리즘이란2. 버블 정렬이란3. 예시

    oncehyun

    RSS·Powered by Inblog