package algo;
public class Bubble03 {
public static void main(String[] args) {
// 인접한 두수의 비교하고 교환
int[] arr = {5, 4, 3, 2, 1};
int a = 0; // 배열의 첫 번째 인덱스를 가리키는 변수 a를 초기화합니다.
int b = 1; // 배열의 두 번째 인덱스를 가리키는 변수 b를 초기화합니다.
int 총회전수 = arr.length - 1; // 배열의 길이에서 1을 뺀 값을 총회전수로 설정합니다.
int d = 총회전수; // d를 총회전수로 초기화하여 마지막 인덱스를 추적합니다.
//회전수는 n-1
for (int 회전수 = 1; 회전수 <= 총회전수; 회전수++) { // 총회전수만큼 반복하는 외부 루프입니다.
for (int c = 1; c <= d; c++) { // 현재 회전에서 비교할 인덱스를 설정하는 내부 루프입니다.
if (arr[a] > arr[b]) { // 현재 인덱스 a의 값이 b의 값보다 큰 경우 교환합니다.
int temp = arr[b]; // b의 값을 임시 변수 temp에 저장합니다.
arr[b] = arr[a]; // a의 값을 b 위치에 저장합니다.
arr[a] = temp; // 임시 변수 temp의 값을 a 위치에 저장합니다.
a++; // a 인덱스를 증가시킵니다.
b++; // b 인덱스를 증가시킵니다.
}
}
a = 0; // a를 0으로 초기화하여 다음 회전 준비합니다.
b = 1; // b를 1로 초기화하여 다음 회전 준비합니다.
d--; // 마지막 인덱스를 1 감소시켜 다음 회전에서 비교할 범위를 줄입니다.
}
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
}
}
Share article