Bubble Sort

조상원·2025년 8월 2일

자료구조

목록 보기
4/11
  • 인접한 두 개의 원소를 검사하여 정렬하는 방법으로 뒤에서부터 정렬
  • 인접한 2개의 레코드를 비교하여 순서대로 되어 있지 않으면 서로 교환(큰 수를 뒤로)
  • 가장 큰 수가 뒤로감
  • 이 과정을 리스트의 왼쪽 끝에서 오른쪽 끝까지 반복(스캔)
  • 1회 반복할 때마다 오른쪽에 정렬된 데이터가 도착

-> 가장 큰 수(9)가 뒤로 옴.숫자 1개 정렬 끝.
이 과정을 계속 반복

public static void bubbleSort(int[] numbers) {
        for (int i = 0; i < numbers.length - 1; i++) {
            for (int j = 0; j < numbers.length - i - 1; j++) {
                if (numbers[j] > numbers[j + 1]) {
                    int temp = numbers[j];
                    numbers[j] = numbers[j + 1];
                    numbers[j + 1] = temp;
                }
            }
        }
    }
  • 비교 횟수 : 최상,평균,최악 모두 일정함 : O(n^2)
  • 이동 횟수 : 3 * 비교횟수
  • 이미 정렬된 경우 (최선) : 이동횟수 = 0
  • 데이터 이동 많음
  • 컴퓨터에서 이동은 비교보다 많은 시간이 소요된다.

0개의 댓글