ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [버블정렬] 백준 2750번
    책/DoIt 알고리즘 코딩테스트 2024. 11. 7. 12:35

    문제

    N개의 수가 주어졌을 때, 이를 오름차순 정렬하는 프로그램을 작성하시오.

    - 1번째 줄에 수의 개수 N (1 <= N <= 1,000)
    - 2번째 줄부터 N개의 줄에 숫자가 주어짐
    - 수는 중복되지 않는다

     

    문제 분석하기

    숫자 범위가 1,000으로 매우 작기 때문에, O(N^2) 시간복잡도 알고리즘을 사용해도 문제 없음
    버블정렬 알고리즘을 이용하여 문제풀이

     

    슈도코드

    N(정렬할 수 개수)
    A(정렬할 배열 선언)
    for(i : 0~N -1)
    {
        for(j : 0 ~ N -1 -i)
        {
            현재 A배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 두 수 바꾸기
        }
    }
    A 배열 출력

     

    구현

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class App {
        public static void main(String[] args) throws Exception {
            
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int length = Integer.parseInt(br.readLine());
    
            int []arr = new int[length];
            
            for (int i =0; i < length; i++){
                arr[i] = Integer.parseInt(br.readLine());
            }
    
            for (int i =0; i < arr.length; i++){
                for(int j =0; j< arr.length -1 -i; j++){
                    if (arr[j] > arr[j+1]){
                        int temp = arr[j+1];
                        arr[j+1] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
    
            for (int i : arr) {
                System.out.println(i);
            }
        }
    }

    ' > DoIt 알고리즘 코딩테스트' 카테고리의 다른 글

    [선택정렬] 백준 1427번  (1) 2024.11.09
    [버블정렬] 백준 1377번  (0) 2024.11.08
    [우선순위 큐]백준 11286번  (0) 2024.11.06
    [큐] 백준 2164번  (0) 2024.11.04
    [스택] 백준 17298  (0) 2024.10.30
Designed by Tistory.