public class Algo02 {
/*
* 버블정렬
* 옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내면
* 효율성이 가장 떨어지는 알고리즘
* 1 10 5 8 7 6 4 3 2 9
* 1-> 9번째까지 1 10 5 8 7 6 4 3 2 9
* 2-> 8번째까지 1 5 10 8 7 6 4 3 2 9
* 3-> 1 5 8 10 7 6 4 3 2 9
* ...
* 가장 큰 값이 맨 끝으로
*/
public static void main(String[] args) {
int temp;
int arr[] = {1,10,5,8,7,6,4,3,2,9};
for(int i =0 ; i < arr.length; i ++) {
for(int j = 0; j < 9 - i; j ++) {
if(arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(int i = 0; i < arr.length; i ++) {
System.out.print(arr[i]+ " ");
}
}
/*
* 시간 복잡도
* 10 + 9 + 8 + ... + 1
* N * (N + 1) / 2
* O(N^2)
* 선택정렬보다 느리다 -> 바로 옆에 있는 값과 자리를 바꾸기 때문에 3개의 값을 사용하여 시간이 더 소요된다.
*/
}