안녕하세요~~~ 오늘은 자바로 버블정렬에 대해 알아보겠습니다.
버블정렬은 정렬중에 가장 기본적? 인 정렬 방법으로 정렬 대상의 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문이 돌때마다 비교횟수를 한번씩 줄여주면 더욱 효율적인 코드가 되겠지요.
오늘은 매우 간단한 버블정렬에대해 알아보았습니다.
'Algorithm > 정렬알고리즘' 카테고리의 다른 글
[Algorithm]퀵정렬 알고리즘(C++) (4) | 2018.06.04 |
---|---|
[Algorithm]힙정렬 알고리즘(C++) (2) | 2018.05.30 |
[Algorithm]내부정렬 정렬시간(시간복잡도) (0) | 2017.08.24 |
[Algorithm]삽입정렬 예제(insertion sort) (0) | 2017.08.22 |
[Algorithm]선택정렬 예제(selection sort) (2) | 2017.08.22 |