산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 버블 정렬 마스터하기: 명확한 예제와 단계별 설명

버블 정렬이란?

버블 정렬은 리스트를 반복적으로 순회하며 인접한 항목을 비교하고 잘못된 순서면 교환하는 고전적인 비교 기반 알고리즘입니다. 각 패스마다 다음으로 큰 값이 최종 위치로 이동하므로 '버블'이라는 이름이 붙었습니다. 단순하지만 정렬 메커니즘 이해에 훌륭한 기초가 됩니다.

자바 구현

다음 프로그램은 정수 배열에 버블 정렬을 시연합니다. 알고리즘 동작을 볼 수 있도록 상세한 디버깅 정보를 출력합니다.

package com.guru99;
public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {860, 8, 200, 9};
        System.out.println("---정렬 전 배열---");
        printArray(arr);
        bubbleSort(arr); // 버블 정렬로 정렬
        System.out.println("---정렬 후 배열---");
        printArray(arr);
    }

    static void bubbleSort(int[] array) {
        int n = array.length;
        for (int i = 0; i < n; i++) {
            System.out.println("정렬 패스 " + (i + 1));
            for (int j = 1; j < (n - i); j++) {
                System.out.println("비교: " + array[j - 1] + " 와 " + array[j]);
                if (array[j - 1] > array[j]) {
                    // 요소 교환
                    int temp = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = temp;
                    System.out.println(array[j] + " is greater than " + array[j - 1]);
                    System.out.println("요소 교환: 교환 후 새 배열");
                    printArray(array);
                }
            }
        }
    }

    static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println();
    }
}

프로그램 출력

860 8 200 9
정렬 패스 1
비교: 860 와 8
860 is greater than 8
요소 교환: 교환 후 새 배열
8 860 200 9
비교: 860 와 200
860 is greater than 200
요소 교환: 교환 후 새 배열
8 200 860 9
비교: 860 와 9
860 is greater than 9
요소 교환: 교환 후 새 배열
8 200 9 860
정렬 패스 2
비교: 8 와 200
비교: 200 와 9
200 is greater than 9
요소 교환: 교환 후 새 배열
8 9 200 860
정렬 패스 3
비교: 8 와 9
정렬 패스 4
---정렬 후 배열---
8 9 200 860

java

  1. Java Hello World: 첫 프로그램 작성하기
  2. Java 배열 복사 기법: 대입, 루프, System.arraycopy, Arrays.copyOfRange 총정리
  3. Java 객체 배열 생성하기: 단계별 완벽 가이드
  4. Java String.charAt() 완전 이해: 문법, 반환타입, 예외, 실전 예제
  5. Java String.endsWith() 마스터: 문자열 접미사 확인 예제
  6. Java 생성자 오버로딩: 실전 코드 예제로 이해하기
  7. 자바에서 소수 판별하기: 완벽 가이드
  8. 자바 버블 정렬 마스터하기: 명확한 예제와 단계별 설명
  9. 자바 삽입 정렬 알고리즘: 명확한 예제와 단계별 가이드
  10. 자바 선택 정렬: 단계별 예제와 전체 코드