버블 정렬
인접한 데이터 항목의 크기를 비교하여 교환 작업을 수행하고 정렬하는 방법
시간 복잡도는 O(n2)매우 느립니다.
일반적으로 루핑하면서 인접한 데이터 간의 교환 작업으로 정렬됩니다.
소송 절차
- 비교 작업이 필요한 경우 루프 범위를 조정합니다.
- 인접 데이터 값을 비교합니다.
- 스왑 조건이 충족되면 스왑 작업이 수행됩니다.
- 루프가 완료될 때까지 2단계와 3단계를 반복합니다.
- 정렬 영역을 설정하고 다음 루프를 실행할 때 이 영역을 제외합니다.
- 비교 대상이 더 이상 없을 때까지 1~5단계를 반복합니다.
스왑이 지정된 루프의 전체 범위에 있지 않으면 정렬이 완료되어 프로세스가 종료될 수 있음을 의미합니다.
버블 정렬을 사용하여 N개의 숫자를 오름차순으로 정렬
sort()를 사용하는 것은 쉽지만 예를 들어 직접 정렬을 구현해 봅시다.
public class BubbleSort {
static int testA = 5;
static int() testB = {5, 2, 3, 4, 1};
public static void main(String() args) {
bubbleSort(testA, testB);
}
public static int bubbleSort(int a, int() b) {
// 정렬할 배열 생성
int() A = new int(a);
// 정렬할 배열에 파라미터로 넘어온 정렬되지 않은 숫자를 담는다
for (int i=0; i<a; i++) {
A(i) = b(i);
}
for (int i=0; i<a-1; i++) {
for (int j=0; j<a-1-i; j++) {
if (A(j) > A(j+1)) {
// 현재 A 배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 두 수를 바꾼다.
int temp = A(j);
A(j) = A(j+1);
A(j+1) = temp;
}
}
}
// 값 출력
int answer = 0;
for (int i=0; i<a; i++) {
answer = A(i);
System.out.println(answer);
}
re