본문 바로가기
알고리즘 이전/정렬, 이분검색, 결정알고리즘

버블정렬

by hoshi03 2023. 8. 12.

2중 for문, 앞에서부터 붙어있는 원소 2개를 비교해서 뒤로 한칸씩 넘겨서 맨 뒤에 정렬된 숫자가 들어감

for 루프 두번째 것은 n-i-1로 정렬된 칸을 제외하면서 루프가 돈다

 

import java.util.*;
import java.io.*;


class Main {
    public int[] solution(int n, int[] arr1){
        int[] arr = arr1;
        //버블정렬 i는 도는 횟수만
        for(int i = 0; i < n; i++){
            //맨 뒤에 정렬된 값이 들어가니 한칸씩 줄여가면서 앞으로
            for(int j = 0; j < n-i-1; j++ ){
                if (arr[j] > arr[j+1]){
                    int tmp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }
        return arr;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for(int i =0; i < n; i++)arr[i] = in.nextInt();

        for(int x : T.solution(n, arr)) System.out.print(x + " ");
    }
}

'알고리즘 이전 > 정렬, 이분검색, 결정알고리즘' 카테고리의 다른 글

장난꾸러기  (0) 2023.08.13
중복탐색  (0) 2023.08.13
LRU  (0) 2023.08.13
삽입정렬  (0) 2023.08.13
선택정렬  (0) 2023.08.12