찾다
Javajava지도 시간초보자는 JAVA 버블 정렬을 배우는 방법을 배웁니다.

이 글에서는 초보자가 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에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

java中封装是什么java中封装是什么May 16, 2019 pm 06:08 PM

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

归纳整理JAVA装饰器模式(实例详解)归纳整理JAVA装饰器模式(实例详解)May 05, 2022 pm 06:48 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.