본문으로 바로가기

   

 

- 바로 옆에 있는 값과 비교해서 더 작은 값을 앞으로 옮기는 방법

- "가장 비효율적"

- 버블정렬의 시간 복잡도는 O(N^2);

 

선택정렬과 버블정렬의 시간복잡도는 같은데 왜 버블정렬이 가장 비효율적인지?

- 버블정렬은 옆에 있는 숫자와 계속해서 비교해야하고 선택정렬은 한 번만 비교하면 된다. 

 

문제

- 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하시오.

- 1, 10, 5, 9, 8, 3, 2, 6, 7, 4

 

소스 코드

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i,j, temp;
        int arr[] = new int[10];

        for(int k=0; k<arr.length; k++) {
            arr[k] = sc.nextInt();
        }

        for(i=0; i<arr.length; i++) {
            for(j=0; j<9-i; j++) {
                if(arr[j] > arr[j+1]) {
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }

        for(i=0; i<10; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

 

출력 결과