본문 바로가기

알고리즘

버블정렬 구현하기

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


public class Main {
	public static final Scanner scanner = new Scanner(System.in);

	public static void bubbleSort(int[] data, int n) {
			for(int i = 0 ; i < n ; i++) {
				int count = 0;
				for(int j = 0; j + 1 < n - i; j++){
						if(data[j] > data[j+1]){
							//오름차순이 아닌 쌍이 존재 한다
							int tmp = data[j];
							data[j] = data[j+1];
							data[j+1] = tmp;		
							count +=1;
						}
				}
				if(count == 0){
					//data[0] ~ data[n-i-1]칸까지 오름차순 아닌 쌍이 없었다
					//data[0] ~ data[n-i-1]칸까지 모두 오름차순이다
					//data[n-i] ~ data[n-1]까지는 이미 정렬되어있다
					break;
				}
			}
	}

	public static void main(String[] args) throws Exception {
		int n = scanner.nextInt();
		int[] data = new int[n];
		for(int i = 0 ; i < n ; i++){
			data[i] = scanner.nextInt();
		}

		bubbleSort(data, n);

		for(int i = 0 ; i < n ; i++){
			if( i > 0 ){
				System.out.print(" ");
			}
			System.out.print(data[i]);
		}
	}

}

10주 완성 알고리즘 코딩테스트 - goorm edu에서 들으실 수 있는 내용입니다.