본문 바로가기

Java/백준

[JAVA] 백준 2750 수 정렬하기

2750번: 수 정렬하기 (acmicpc.net)

 

2750번: 수 정렬하기

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

www.acmicpc.net

 

풀이 과정 

 

- 시간 복잡도가 O(n^2)인 버블 정렬 이용 

2023.11.23 - [C언어/알고리즘] - [알고리즘] ch 8. 정렬(1) - 버블 정렬, 삽입 정렬

 

[알고리즘] ch 8. 정렬(1) - 버블 정렬, 삽입 정렬

8.1 정렬 알고리즘의 개요 정렬(Sorting) - 정해진 기준에 따라 데이터를 순서대로, 그리고 체계적으로 정리하는 알고리즘 - 정렬의 목적은 '탐색' 8.2 버블 정렬 - 자료 구조를 순회하면서 이웃한 요

juju-study.tistory.com

 

정답

import java.util.Scanner;

public class Main {
    
    //교환 
    static void swap (int[] a, int index1, int index2)
    {
        int t = a[index1];
        a[index1] = a[index2];
        a[index2] = t;
    }
    
    //버블 정렬 
    static void bubbleSort(int[] a, int n)
    {
        int k=0;
        while(k<n-1)
        {
            int last = n-1; //마지막으로 요소를 교환한 위치 
            for(int j=n-1; j>k; j--)
            {
                if(a[j-1]>a[j]){
                    swap(a,j-1,j);
                    last=j;
                }
            }
            k=last;
        }
    }
    
    public static void main(String[] args) 
    {
        Scanner sc = new Scanner(System.in);
        
        int num = sc.nextInt();
        int n[] = new int[num];
        
        for(int i=0; i<num; i++)
        {
            n[i] = sc.nextInt();
        }
        
        bubbleSort(n,num);
        
        for(int i=0; i<num; i++)
        {
            System.out.println(n[i]);
        }
    }
        
}

 

 

'Java > 백준' 카테고리의 다른 글

[JAVA] 백준 25305 커트라인  (0) 2024.02.06
[JAVA] 백준 2587 대표값2  (1) 2024.02.06
[JAVA] 백준 1436 영화감독 숌  (1) 2024.02.06
[JAVA] 백준 19523 수학은 비대면 강의입니다  (1) 2024.02.05
[JAVA] 백준 2231 분해합  (0) 2024.02.05