# 버블 정렬
## 목차
---
1. 무엇?
2. 특징?
3. 알고리즘
## 1. 무엇?
---
제자리 정렬 알고리즘의 하나. 거품이 올라가듯 정렬.
1. 두 값을 비교하여 정렬
2. 한 칸 이동 후 다시 두 값 비교 후 정렬
3. 끝 까지 수행하면 제일 큰(또는 작은) 값이 끝으로 오게 됨
4. 이(1~3)를 반복
## 2. 특징?
---
- 구현이 매우 간단
- 추가 메모리 필요 X (in-place)
- 느림, 시간 복잡도 O(n^2)
## 3. 알고리즘
---

### 의사코드
```
procedure bubbleSort( A : list of sortable items ) defined as:
for each i in 1 to length(A) do:
for each j in length(A) downto i + 1 do:
if A[ j ] < A[ j - 1 ] then
swap( A[ j ], A[ j - 1 ] )
end if
end for
end for
end procedure
```
### 소스코드
```
void bubbleSort(int[] arr) {
int temp = 0;
for(int i = 0; i < arr.length; i++) {
for(int j= 1 ; j < arr.length-i; j++) {
if(arr[j]<arr[j-1]) {
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
```