>  기사  >  Java  >  초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.

초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-05-07 09:13:192630검색

이 글에서는 초보자가 JAVA 버블 정렬을 배울 수 있는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.

버블 정렬(Bubble Sort)은 컴퓨터 과학 분야의 비교적 간단한 정렬 알고리즘입니다.
정렬해야 할 요소를 반복해서 방문하여 인접한 두 요소를 차례로 비교하고, 요소의 순서(예: 큰 것에서 작은 것, 첫 번째 문자 A에서 Z까지)가 잘못된 경우 요소의 위치를 ​​바꿉니다.
교체해야 할 인접 요소가 없어 정렬이 완료될 때까지 요소 방문이 반복됩니다.
이 알고리즘의 이름은 탄산 음료의 이산화탄소 기포가 결국 맨 위로 떠오르는 것처럼 더 큰 요소가 교환(오름차순 또는 내림차순으로 정렬)을 통해 순서의 맨 위로 천천히 "부유"한다는 사실에서 유래되었습니다. , 따라서 이름은 "위험"입니다.
이론만 보면 조금 헷갈릴 수도 있지만, 다음으로는 버블정렬이 어떻게 비교하고 정렬하는지 자세히 알아볼까요~

아이디어 정렬

인접 비교, 작은 것부터 큰 것까지 정렬, 작은 것이 작다면 앞으로 변경하세요
루프 데이터를 처음부터 끝까지 순회하는 것을 나타냅니다

초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.버블 정렬 구현

클래스 생성: 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 기본 튜토리얼

위 내용은 초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제