버블 정렬(Bubble Sort) 알고리즘이란?
이웃한 두 요소의 대소 관계를 비교하여 교환을 반복하는 알고리즘.
//두 인접한 요소의 값을 교환한다.
static void swap(int[] a, int idx1, int idx2) {
int tmp = a[idx1];
a[idx1] = a[idx2];
a[idx2] = tmp;
}
//버블 정렬을 실행한다.
static void bubbleSort(int[] a) {
int n = a.length;
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;
}
}
lktprogrammer.tistory.com/30?category=672214
교환 정렬과 똑같이 여겨지기도 하지만,
교환 정렬은 마지막 바로 이전의 데이터와 마지막 데이터를 비교할 때까지 연산을 반복하는 방법을 채택하고 있음.
버블 정렬은 교환이 일어나지 않을 때 까지 반복하는 방법.
'알고리즘 > 정렬 알고리즘' 카테고리의 다른 글
병합 정렬(Merge Sort) (0) | 2020.11.23 |
---|---|
셸 정렬 알고리즘 (0) | 2020.11.22 |
힙 정렬(Heap Sort) 알고리즘 (0) | 2020.11.16 |
퀵 정렬(Quick Sort) 알고리즘 (0) | 2020.11.16 |
병합 정렬(Merge Sort) 알고리즘 (0) | 2020.11.16 |
알고리즘/정렬 알고리즘