정의
0번째 인덱스부터 마지막 인덱스까지 순회하면서 가장 작은 값을 해당 위치로 옮기는 것을 반복한다.
구현
public void bubbleSort(int[] arr) {
for (int i=0; i < arr.length; i++) { // n
int min = arr[i];
int minIdx = i;
for (int j=i; j < arr.length; j++) { // n
if (min > arr[j]) {
min = arr[j];
minIdx = j;
}
}
int tmp = arr[i];
arr[i] = arr[minIdx];
arr[minIdx] = tmp;
}
}
시간복잡도
항상 n개의 index에 따라 배열의 길이 - index의 개수만큼의 원소를 확인해야하기 때문에 항상 O(n2)의 시간복잡도를 가진다.
정의
0번째 인덱스부터 n-1인덱스까지 돌면서 바로 오른쪽 원소와 비교하여 더 작은 값을 왼쪽으로 옮긴다. 이를 n번만큼 반복하여 정렬한다.
구현
public void bubbleSort(int[] arr) {
for (int i=0; i < arr.length; i++) { // n
for (int j=0; j<arr.length-1; j++) { // n
if (arr[j+1] < arr[j]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
시간복잡도
정의
구현
시간복잡도
정의
구현
시간복잡도
정의
구현
시간복잡도