이 글에서는 초보자가 JAVA 버블 정렬을 배울 수 있는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
버블 정렬(Bubble Sort)은 컴퓨터 과학 분야의 비교적 간단한 정렬 알고리즘입니다.
정렬해야 할 요소를 반복해서 방문하여 인접한 두 요소를 차례로 비교하고, 요소의 순서(예: 큰 것에서 작은 것, 첫 번째 문자 A에서 Z까지)가 잘못된 경우 요소의 위치를 바꿉니다.
교체해야 할 인접 요소가 없어 정렬이 완료될 때까지 요소 방문이 반복됩니다.
이 알고리즘의 이름은 탄산 음료의 이산화탄소 기포가 결국 맨 위로 떠오르는 것처럼 더 큰 요소가 교환(오름차순 또는 내림차순으로 정렬)을 통해 순서의 맨 위로 천천히 "부유"한다는 사실에서 유래되었습니다. , 따라서 이름은 "위험"입니다.
이론만 보면 조금 헷갈릴 수도 있지만, 다음으로는 버블정렬이 어떻게 비교하고 정렬하는지 자세히 알아볼까요~
아이디어 정렬
인접 비교, 작은 것부터 큰 것까지 정렬, 작은 것이 작다면 앞으로 변경하세요
루프 데이터를 처음부터 끝까지 순회하는 것을 나타냅니다
버블 정렬 구현
클래스 생성: BubbleSort.java
package cn.tedu.array;import java.util.Arrays;/**本类用来完成초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.*/public class TestBubbleSort { public static void main(String[] args) { //1.创建一个无序的数组 int[] a = {27,96,73,25,21}; //2.调用method()完成排序 int[] newA = method(a); System.out.println("排序完毕:"+Arrays.toString(newA)); } public static int[] method(int[] a) { //1.外层循环,控制比较的轮数,假设有n个数,最多比较n-1次 //开始值:1 结束值:<= a.length-1 变化:++ //控制的是循环执行的次数,比如5个数,最多比较4轮,<= a.length-1,最多取到4,也就是[1,4]4次 for(int i = 1 ; i <= a.length-1 ; i++) { System.out.println("第"+i+"轮:"); //2.内层循环:相邻比较+互换位置 for(int j=0; j < a.length-i ; j++) { //相邻比较,a[j]代表的就是前一个元素,a[j+1]代表的就是后一个元素 if(a[j] > a[j+1]) { //交换数据 int t = a[j]; a[j] = a[j+1]; a[j+1] = t; //System.out.println("第"+(j+1)+"次比较交换后:"+Arrays.toString(a)); } } System.out.println("第"+i+"轮的结果:"+Arrays.toString(a)); } return a;//把排序好的数组a返回 }}
실제로 기존 데이터를 최적화할 수도 있습니다. 정렬:
최적화 1: 이전 정렬 라운드에서 생성된 최대값은 후속 비교 라운드에 참여할 필요가 없습니다. 여러 라운드 실행 후에는 여러 값이 생성되며 비교에 참여할 필요가 없습니다. . Round i는 i 값을 생성하므로 필요합니다. - i
최적화 2: 수량을 설정해야 합니다. 이 수량은 현재 상호 비교 라운드에서 요소 교환이 있었는지 감지하는 데 사용됩니다. 발생하면 순서가 정해지지 않았으므로 플래그를 true로 변경하고 다음 비교 라운드로 진행하지만, 현재 라운드에서는 모든 요소를 서로 비교하고 위치를 교환하지 않습니다. , 이는 순서가 정렬되었음을 의미하므로 다음 비교 라운드가 필요하지 않습니다. 종료 메소드를 반환하면 됩니다
관련 무료 학습 권장 사항: Java 기본 튜토리얼
위 내용은 초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!