본문 바로가기
프로젝트 & 실습/실습 & 평가 등

[실습&발표] 버블정렬

by hhyyyjun 2022. 12. 31.

| 버블정렬

서로 인접한 두 요소를 비교(검사)하여 오름차순 및 내림차순으로 정렬시키는 알고리즘

인접한 두 요소를 비교했을 때 크기가 순서대로 되어있지 않다면 서로 교환시킨다.

| 프로세스

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

댓글