| 버블정렬
서로 인접한 두 요소를 비교(검사)하여 오름차순 및 내림차순으로 정렬시키는 알고리즘
인접한 두 요소를 비교했을 때 크기가 순서대로 되어있지 않다면 서로 교환시킨다.
| 프로세스
1. 앞 원소와 다음의 원소 비교
2. 앞 원소가 더 값이 크다면 다음 원소와 교환
3. 교환 후 해당 원소와 그 다음 원소 비교
4. 맨 끝의 원소까지 비교하면서 정렬
| Exercise
Data = {9, 3, 7, 5, 1}




| Practice
package bubble;
public class Bubble {
public static void main(String[] args) {
int[] data = {7, 2, 8, 5, 3, 1};
for(int i=0;i<data.length;i++) { //유지보수
System.out.print(data[i]+" ");
}
System.out.println(); //줄바꿈
System.out.println(); //줄바꿈
for(int j = 1;j<=data.length;j++) { //1~6회까지 진행
if(j == data.length) { //총 6번 진행하므로 5회 정렬 출력을 위해
//j의 값이 data.lenth와 동일할 때 for문 탈출
System.out.println("정렬 완료!");
break;
}
System.out.print(j+"회전 정렬 : "); //몇 회전 째인지?
//1회전 정렬
for(int i=0;i<data.length-1;i++) { //정렬은 배열 크기-1 만큼 진행한다!
if(data[i]>data[i+1]) { //교환법칙 앞 인덱스 값이 뒤 인덱스 값보다 크다면~
System.out.print("교 "); //몇 번 교환했는지 체크
int tmp = data[i];
data[i] = data[i+1];
data[i+1] = tmp;
}
}
//1회전 정렬 값 확인
System.out.println();
for(int i=0;i<data.length;i++) {
System.out.print(data[i]+" ");
}
System.out.println(); //줄바꿈
System.out.println(); //줄바꿈
}
}
}
결과 값

디버깅 표

'프로젝트 & 실습 > 실습 & 평가 등' 카테고리의 다른 글
[평가] DBMS 평가 (1) | 2023.01.01 |
---|---|
[평가] 문제 오답풀이 (0) | 2023.01.01 |
[실습] ArrayList 실습 (0) | 2022.12.31 |
[실습] 상속&오버라이딩&추상화 실습 (0) | 2022.12.31 |
[실습] 별 그리기 (0) | 2022.12.31 |
댓글