참고
@minji0801 : 버블 정렬 vs 선택 정렬 vs 삽입 정렬 차이
shinsunyoung : 기본적인 정렬 방법들(선택, 삽입, 버블)에 대해 알아보자
모두 O(n²)
public int[] 버블정렬(int n, int[] arr) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tmp;
}
}
}
return arr;
}
public int[] 선택정렬(int n, int[] arr) {
for (int key = 0; key < n - 1; key++) {
int min = key;
for (int i = key + 1; i < n; i++) {
if (arr[min] > arr[i]) {
min = i;
}
}
int tmp = arr[min];
arr[min] = arr[key];
arr[key] = tmp;
}
return arr;
}
public int[] 삽입정렬(int n, int[] arr) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j;
for (j = i - 1; j >= 0; j--) {
if (key >= arr[j])
break;
arr[j + 1] = arr[j];
}
arr[j + 1] = key;
}
return arr;
}