출처 : 쉽게 배우는 알고리즘 (문병로 저)
1. 기본
- Array 에서 가장 큰 숫자를 맨 뒤로 보낸다.
단, 이웃한 array를 비교해서 큰값을 다음값과 교환한다.
2. 알고리즘 version 1
BubleSort (int A[])
{
for i = N-1 downto 1
for j = 0 to i-1
if (A[j] > A[j+1]) swap(A, j, j+1);
}
2. 알고리즘 version 2
만약 아래의 비교 구문에서 한번도 swap이 발생하지 않는다면,
이미 정렬되어 있다는 뜻이다. 따라서 그냥 종료한다.
BubleSort (int A[])
{
bool bSorted= true;
for i = N-1 downto 1
for j = 0 to i-1
if (A[j] > A[j+1])
bSorted = false;
swap(A, j, j+1);
if (bSorted)
return;
}
3. 알고리즘 version 2구현
public class BubleSort extends BaseSort {
@Override
public void privateSort(int[] A) {
boolean bSorted = false;
for (int i =A.length-1 ; i >=0; i--){
for (int j =0 ; j < i-1 ; j++) {
if( A[j] > A[j+1] ) {
bSorted = false;
swap(A, j, j+1);
}
}
if (bSorted == true)
return;
}
}
/**
*
*/
public BubleSort() {
// TODO Auto-generated constructor stub
}
}
'Programming > Algorithm' 카테고리의 다른 글
| 기본 알고리즘 - Quick Sort (0) | 2015.01.31 |
|---|---|
| 기본 알고리즘 - MergeSort (0) | 2015.01.25 |
| 기본 Sort 알고리즘 InsertionSort (0) | 2015.01.21 |
| 기본 Sort 알고리즘 - 선택정렬 (0) | 2015.01.18 |
| Insertion Sort (0) | 2014.12.20 |
