본문 바로가기
java&eclipse 코딩 알고리즘/20231205

BubbleSortEarlyStop

by 몽상크리에이터 2023. 12. 14.

package k20231205;

 

import java.util.Arrays;

 

public class BubbleSortEarlyStop {

 

public static void main(String[] args) {

 

// int[] data = {8, 3, 4, 9, 1};

int[] data = {9, 1, 3, 4, 8};

 

for (int i=0; i<data.length-1; i++) {

 

// isFlag라는 이름의 변수를 선언하고 true로 초기화 한다.

boolean isFlag = true;

 

for (int j=0; j<data.length-1-i; j++) {

if (data[j] > data[j+1]) {

int temp = data[j];

data[j] = data[j+1];

data[j+1] = temp;

 

// 값 교환이 이루어지면 flag에 false를 저장한다.

isFlag = false;

}

 

}

 

// 정렬이 완료된 데이터는 값교환 작업이 진행되지 않기 때문에 isFlag는 true를 유지한다.

// 더 이상 회전할 필요가 없으므로 i반복을 탈출한다.

// if (isFlag == true)라고 쓸 필요없다. 논리값을 기억하기 때문에 isFlag만 써도 된다 // !isFlag => Flase인가

if (isFlag) {

break;

}

 

System.out.println(i+1 + "회전 결과: " + Arrays.toString(data));

}

System.out.println("================================");

System.out.println("정렬 결과: " + Arrays.toString(data));

}

 

}

 

얼리스탑이 없는 일반 버블정렬 결과(아래)

 

'java&eclipse 코딩 알고리즘 > 20231205' 카테고리의 다른 글

ConvertTest4 Self  (0) 2023.12.14
ConvertTest3  (0) 2023.12.14
ConvertTest2  (0) 2023.12.14
ConvertTest  (0) 2023.12.14
BubbleSort  (0) 2023.12.14