버블 정렬 알고리즘의 자바 여덟 개 종류

첫째, 이동 맵 발표

분석 둘째, 아이디어

1 쌍으로 인접한 두 숫자는 N [I]는 N 개의 [의 J + 1]의 비율로, 여기서 n은 [I]> N [J + 1] 다음, 짝수 교환한다면

2. j 개의 ++는, 상기 단계를 반복하여 제 여행 종료 후, 최대 값은 또한 아래쪽으로 버블 정렬 큰 (작은) 수의 싱크라고도 마지막에 결정될 것이다

3. 나는 ++, = 난 때까지 N-1 끝을 위의 단계를 반복, 정렬이 완료됩니다.

셋째, 음극 헤테로 분석

1. 관계없이 원래 배열 질서와 시간 복잡도는 O (N2)인지,

아무도 다른 다수 (N-1)의 2 배, 분해 번호를 비교 안 이유는 낮은 정 전력을 N2 + 2N-1을 제거, N2 남은 최종 시간하므로 복잡성을 n2

2. 공간 복잡도 만 정의 보조 변수 때문에 상관없이 N의 크기, 공간적 복잡도는 O이고, O (1) (1)

넷째, 비교하고 정렬 버블 정렬을 선택

1. 시간은 O의 정도 (N2)에 대한 책임

2. 공간 복잡도는 O (1)은

제 최대 또는 최소의 개시로부터 결정된 정렬을 선택 3. 프론트 수가 다시 질서 비교적 작은 또는 다수되도록

  버블 정렬은, 지난 처음부터 최대 또는 최소 수를 결정 후자의 수를 주문하고 이전의 수보다 크거나 작은 있는지 확인하는 것입니다.

수입 java.util.Arrays;
Public 클래스冒泡{
    공공 정적 무효 메인 (문자열 []에 args) {
        INT [] N = 새로운 INT [] {1,6,3,8,33,27,66,9,7,88};
        INT 온도;
        대해 INT (I = 0; I <n.length-1; 내가 ++) {
            대 (INT의 J = 0; J <n.length-1; J ++) {
                경우 (N [J]> N [J + 1]) {
                    온도 = N [J]
                    N [J] = N [J + 1];
                    N [J + 1] = 온도;
                }
            }
        }
        에서 System.out.println (Arrays.toString (N));
    }
}

추천

출처www.linuxidc.com/Linux/2019-08/159807.htm