728x90
bubble sort
O(N^2)

배열에서 이웃한 인덱스끼리 비교하여 자리를 교환한다.

사진 출처 : https://velog.io/@kimjihong9/Bubble-Sort

 

https://www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

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

public class Main {
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

            int N=Integer.parseInt(br.readLine());
            int[] arr=new int[N];
            for(int i=0; i<N; i++){
                arr[i] = Integer.parseInt(br.readLine());
            }

            // 버블 정렬
            for(int i=0; i<N-1; i++){ // 마지막 정렬 시, 데이터 하나를 정렬할 필요가 없으므로
                for(int j=0; j<N-1-i; j++){	// 맨 뒤에서부터 정렬이 차곡차곡 되므로 비교할 횟수가 1증 줄어듬
                    if(arr[j] > arr[j+1]){
                        int temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }

            Arrays.stream(arr).forEach(System.out::println);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
728x90

'algorithm > algorithm' 카테고리의 다른 글

[Algorithm] binary search  (0) 2023.02.09
[Algorithm] DFS & BFS  (0) 2023.02.08
[Algorithm] sliding window  (0) 2023.02.07
[Algorithm] two pointer  (0) 2023.02.07
[Algorithm] merge sort  (0) 2023.02.07

+ Recent posts