八大排序--01冒泡排序

假设有一组数据 arr\[\]={2,0,3,4,5,7}

方法:开辟两个指针,指向如图,前后两两进行比较,大数据向后冒泡传递,小数据换到前面。

一次冒泡后,数组中最大的数据将到达正确位置。

java 复制代码
for(int i=0;i<arr.length-1;i++) {
				if(arr[i]>arr[i+1]) {
					//进行交换
					int temp =arr[i];
					arr[i]=arr[i+1];
					arr[i+1]=temp;
				}
}

要想让所有数据 到达正确位置,循环进行j次:

java 复制代码
for(int j=0;j<arr.length;j++) {
			for(int i=0;i<arr.length-1-j;i++) {
				if(arr[i]>arr[i+1]) {
					//进行交换
					int temp =arr[i];
					arr[i]=arr[i+1];
					arr[i+1]=temp;
				}
			}
		}

完整代码:

java 复制代码
package Java.start;

import java.util.Arrays;

import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;

public class BubbleSort {
  //冒泡排序
	public static void main(String[] args) {
		int[] arr= {2,0,3,4,5,7};
		sort(arr);
		System.out.println(Arrays.toString(arr));
		
//		for(int i=0;i<arr.length;i++) {
//			System.out.println(arr[i]);
//		}
		
	}
	public static void sort(int[] arr) {
		for(int j=0;j<arr.length;j++) {
			for(int i=0;i<arr.length-1-j;i++) {
				if(arr[i]>arr[i+1]) {
					//进行交换
					int temp =arr[i];
					arr[i]=arr[i+1];
					arr[i+1]=temp;
				}
			}
		}
	}
	
}

结果:

相关推荐
圆山猫13 分钟前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管1 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨1 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡1 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖2 小时前
Java深入解析篇九之NIO详解
java·网络·nio
The Chosen One9852 小时前
高进度算法模板速记(待完善)
java·前端·算法
极光代码工作室4 小时前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发
Leighteen5 小时前
`try-finally` 里的 `return`:为什么 `finally` 会悄悄改掉返回值、吞掉异常
java·开发语言
名字还没想好☜5 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
圆山猫6 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v