2. 버블 정렬(Bubble Sort)
2022. 1. 31. 14:30ㆍ프로그래머스
버블 정렬에 대해서 알아보겠습니다.
다음 숫자들을 오름차순으로 정렬하시오.
1 10 5 8 7 6 4 3 2 9
버블 정렬(Bubble Sort)은 인접한 값과 비교하여 더 작은 값을 앞으로 보냅니다. 이 과정을 반복합니다.
알고리즘 중 아이디어는 간단하지만, 가장 비효율적인 알고리즘입니다.
소스코드
public class TestMain {
public static void main(String[] args) {
int[] array = {1,10,5,8,7,6,4,3,2,9};
for(int i=0;i<10;i++){
for(int j=0; j<9-i;j++){
if(array[j] > array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(int i:array){
System.out.print(i+" ");
}
}
}
연산 횟수는 (N-1) + (N-2) + ...... + 1 = N*(N-1)/2
시간복잡도는 O(N^2) 으로, 선택정렬 알고리즘과 같습니다.
이 역시 N값이 커질수록 시간복잡도가 지수적으로 증가합니다. 따라서 비효율적인 알고리즘입니다.
다음 시간에는 삽입정렬에 대해 알아보겠습니다.
'프로그래머스' 카테고리의 다른 글
4. 퀵 정렬 (Quick Sort) (0) | 2022.02.01 |
---|---|
3. 삽입 정렬(Insertion Sort) (0) | 2022.01.31 |
1. 선택 정렬 (Selection Sort) (0) | 2022.01.31 |
프로그래머스 [k번째 수] - 42748 (0) | 2022.01.28 |
[완주하지 못한 선수] - 42576 (0) | 2022.01.27 |