알고리즘
[알고리즘] 버블정렬
기주그지마
2024. 11. 13. 14:42
버블정렬
버블 정렬은 인접한 두 요소를 비교하여, 앞 요소가 뒤 요소보다 클 경우 두 요소의 위치를 교환하는 방식으로 정렬하는 알고리즘이다.
이를 반복하면 가장 큰 수가 배열의 맨 뒤로 이동하게 됩니다. 각 순회가 끝날 때마다 정렬되지 않은 부분 중 가장 큰 요소가 마지막 위치에 고정된다.
버블정렬은 외부루프에서는 n-1번을 돌고 내부 루프에서는 n-1-i 번의 비교를 수행하므로 시간복잡도는 N^2이다.
삽입정렬과 마찬가지로 배열이 길어질수록 비효율적이나 구현은 간단하다.
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.next());
int[] arr = new int[n];
for(int i=0; i<n; i++){
arr[i] = sc.nextInt();
}
//버블정렬 알고리즘 구현
for(int i=0; i<n-1; i++){
for(int j=0; j<n-1-i; j++){
if(arr[j] > arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
// 정렬된 배열 출력
for(int i=0; i<n; i++){
System.out.print(arr[i] + " ");
}