public class BubbleSort {
public void bubbleSort(int[] arr) {
int tmp;
for (int i = 0; i < arr.length; i++) {
for (int j = arr.length-1; j > i; j--) {
if (arr[j] < arr[j-1]) {
tmp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = tmp;
}
}
}
}
public void bubbleSort2(int[] arr) { //개선(마지막으로 교환한 위치 앞은 이미 정렬된 상태이므로 다시 수행하지 않는다)
int tmp;
int k = 0;
while (k < arr.length - 1){
int last = arr.length-1; //마지막으로 교환한 위치의 오른쪽 인덱스 값
for (int j = arr.length-1; j > k; j--) {
if (arr[j] < arr[j-1]) {
tmp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = tmp;
last = j;
}
}
k = last;
}
}
}