본문으로 바로가기

안녕하세요~~~ 오늘은 자바로 버블정렬에 대해 알아보겠습니다.


버블정렬은 정렬중에 가장 기본적? 인 정렬 방법으로 정렬 대상의 n번째 인덱스와 n+1번째 인덱스를 비교하여 큰값을 뒤로 보내는 방법입니다.


그림설명을 보고나서 바로 코드를 보며 알아보겠습니다.




public class BubbleTest {
	public static void main(String[] args) {
		int[] a = {254,3,213,64,75,56,4,324,65,78,9,5,76,3410,8,342,76};
		int b;
		for(int i = 0 ; i < a.length ; i ++) {
			for(int j = 0 ; j < a.length -i -1 ; j ++) {
				if(a[j]>a[j+1]) {
					b = a[j];
					a[j] = a[j+1];
					a[j+1] = b;
				}
			}
		}
		
		for(int i = 0 ; i < a.length ; i ++) {
			System.out.println(a[i]);
		}
	}
}


for(int j = 0 ; j < a.length -i -1 ; j ++) // 부분에서 a.length-i-1 을 해주는 이유는 첫바퀴 검사에서 가장 큰값이 맨뒤로 가게 됩니다.


때문에 두번째바퀴에선 맨뒤로간 수는 비교를 하지않아도 되는데요.


이렇게 맨 뒷자리에 큰값이 쌓이게 되기때문에 for문이 돌때마다 비교횟수를 한번씩 줄여주면 더욱 효율적인 코드가 되겠지요.


오늘은 매우 간단한 버블정렬에대해 알아보았습니다.