버블정렬이란
- 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘이다.
논리
- 0번 인덱스와 1번인덱스를 비교한다.
- 1번 인덱스가 작다면 앞으로 배치한다.
- 1번 인덱스가 크다면 상태를 유지한다.
- next
- 1번 인덱스와 2번인덱스를 비교한다.
- 2번 인덱스가 작다면 앞으로 배치한다.
- 1번 인덱스가 크다면 상태를 유지한다.
- next
- ....
이미지로 보기
특징
- 알고리즘이 단순하다.
- 안정 정렬 이다.(동일한 값을 가진 데이터들의 순서가 원래의 순서와 같이 유지되는 정렬방법)
- 동일 값이라도 그 데이터가 내포하는 의미는 다를 수 있다.
- ex) 점수가 같은 학생
- 동일 값이라도 그 데이터가 내포하는 의미는 다를 수 있다.
단점
- 특정 요소가 최종 정렬 위치에 있는 경우라도 교환이 일어난다.
예제
- [3,2,5,1,4]이 [1,2,3,4,5]가 되도록 정렬한다.
예제 코드
// 배열 선언
int[] arr = new int[5];
// 배열에 값 넣기
arr[0] = 3;
arr[1] = 2;
arr[2] = 5;
arr[3] = 1;
arr[4] = 4;
//0번 인덱스부터 길이만큼 반복
for (int j = 0; j < arr.length; j++)
{
for (int i = 0; i < arr.length-1-j; i++)
{
int temp = 0;
if(arr[i]>arr[i+1])
{
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1]=temp;
}
}
'알고리즘' 카테고리의 다른 글
[알고리즘] 이진탐색 (0) | 2023.11.30 |
---|---|
[알고리즘] 선택정렬 (0) | 2023.11.29 |
[알고리즘] 삽입정렬 (0) | 2023.11.28 |
[알고리즘] 탐색 알고리즘 (0) | 2023.11.27 |
[알고리즘] 최소 값 찾기 알고리즘 (0) | 2023.11.27 |