알고리즘 설명 : 주어진 N 레코드의 경우, 두 개의 인접한 레코드는 첫 번째 레코드와 순서대로 비교됩니다. 현재 레코드가 후속 레코드보다 클 때 교환 위치가 수행됩니다. 한 라운드 비교 및 교환 후, N 레코드 중 가장 큰 레코드는 N 번째 위치에있을 것입니다. 그런 다음 두 번째 비교 라운드는 이전 (N-1) 레코드에서 수행됩니다. 비교를 위해 남은 레코드가 하나만있을 때까지 프로세스가 반복됩니다.
버블 분류는 이해하기 쉽습니다. 예를 들어, 작은 정렬을 예로 들어, 각 라운드의 분류는 분류되지 않은 시퀀스에서 최대 값을 찾아 끝에 놓습니다.
배열의 길이가 n이라고 가정합니다.
(1) 두 개의 인접한 데이터를 앞뒤로 비교하십시오. 이전 데이터가 다음 데이터보다 큰 경우 두 데이터를 교환하십시오.
(2) 배열의 0 번째 데이터를 N-1 데이터로 한 번 통과 한 후 가장 큰 데이터는 배열의 N-1 위치로 "가라 앉습니다".
(3) n = n-1. n이 0이 아닌 경우 이전 두 단계를 반복하면 정렬이 완료됩니다.
위는 버블 분류의 기본 아이디어 이며이 정의에 따라 신속하게 코드를 쓸 수 있습니다.
패키지 분류;/*** 버블 정렬* 평균 O (n^2), 최고 o (n), 최악의 O (n^2); 공간 복잡성 O (1); 안정적인; 단순 * @author zeng */public class bubblesort {public static void bubblesort (int [] a) {int n = a.length; int temp = 0; for (int i = 0; i <n; i ++) {for (int j = 0; j <ni-1; a [j+1]; a [j+1] = temp;}}} public static void main (String [] args) {int [] a = {49,38,65,97,76,13,27,50}; Bubblesort (a); for (int j : a) system.out.print (j+"");}}요약
위의 것은 Java Bubble 분류의 간단한 구현에 관한 것이며, 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!