[Data Structure] 버블 정렬 - Bubble Sort
2022. 1. 3. 18:23ㆍMajor`/자료구조
버블 정렬 (Bubble Sort)
Stable Sort
- 인접한 두 정수를 비교해서 정렬
시간복잡도
- O(n²)
장점
- 구현이 매우 간단하다
- 추가 메모리가 필요없다
단점
- 시간복잡도가 최선/평균/최악 전부 O(n²)으로, 굉장히 비효율적이다
▶ Bubble Sort Code
static void bubble_sort(int [] A){
Calendar before = Calendar.getInstance();
for(int i=0; i<A.length; i++){
for(int j=0; j<A.length-1; j++){
if(A[j] > A[j+1]){
int tmp = A[j];
A[j] = A[j+1];
A[j+1] = tmp;
}
}
}
}
▶ Full Code
package Sort;
import java.util.Calendar;
public class Bubble_Sort_10 {
public static void main(String[] args) {
int [] A = new int[30]; // 정렬할 배열 A
for(int i=0; i<A.length; i++)
A[i] = (int)(Math.random()*201); // 0~200
// 정렬 전 A 출력
System.out.print("A []");
for(int i=0; i<A.length; i++){
if(i%10==0) System.out.println();
System.out.print(A[i] + "\t");
}
System.out.println("\n");
bubble_sort(A);
// 정렬 후 A 출력
System.out.print("result []");
for(int i=0; i<A.length; i++){
if(i%10==0) System.out.println();
System.out.print(A[i] + "\t");
}
System.out.println("\n");
}
static void bubble_sort(int [] A){
Calendar before = Calendar.getInstance();
for(int i=0; i<A.length; i++){
for(int j=0; j<A.length-1; j++){
if(A[j] > A[j+1]){
int tmp = A[j];
A[j] = A[j+1];
A[j+1] = tmp;
}
}
}
}
}