Java冒泡排序

冒泡排序

文章目录

冒泡排序(Bubble Sort)是 重复 地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们 交换 过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

执行原理

  1. 比较相邻的两个元素,如果第一个比第二个大,就两者进行交换,如果第一个比第二个小,则保持顺序不变。
  2. 对数组中的每一对相邻元素依次做上面的比对和交换工作,这样最大的数就移到了最后。
  3. 一轮完毕后,继续重复步骤1和步骤2的操作,直到没有任何一对数字需要比较,最后便得到了依次排序好的数组。

口诀:

​ N个数字来排队

​ 两两相比小靠前

​ 外层循环N-1

​ 内层循环N-1-i

代码实现:将[6,3,7,5,2,1]进行排序

java 复制代码
public class Test01{
	public static void main(String[] args){
		int[] arr = {6,3,7,5,2,1};
		for(int i = 0;i<arr.length-1;i++){
			for(int j = 0;j<arr.length-1-i;j++){
				if(arr[j] > arr[j+1]){
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		
		for(int element : arr){
			System.out.println(element);
		}	
	}
}

运行结果:

执行过程

优缺点

优点:

  • 简单易懂。冒泡排序的算法原理直观,容易理解和实现,是初学者学习排序算法的好起点。
  • 空间复杂度低。冒泡排序是一种原地排序算法,它只需要常数级别的额外空间,不需要额外的数据结构来存储中间结果。
  • 稳定性高。冒泡排序是一种稳定的排序算法,这意味着对于具有相同值的元素,它们在排序后的相对顺序不会改变。

缺点:

  • 效率低下。冒泡排序的时间复杂度为O(n^2),这意味着随着数据量的增加,排序所需的时间线性增长,因此在处理大规模数据时,冒泡排序的性能较差。
    复杂度为O(n^2),这意味着随着数据量的增加,排序所需的时间线性增长,因此在处理大规模数据时,冒泡排序的性能较差。
  • 不适用于大规模数据集。由于其较高的时间复杂度,冒泡排序在处理大型数据集时可能会消耗大量的计算资源和时间。
相关推荐
陈王卜8 分钟前
django+boostrap实现发布博客权限控制
java·前端·django
小码的头发丝、8 分钟前
Spring Boot 注解
java·spring boot
java亮小白199713 分钟前
Spring循环依赖如何解决的?
java·后端·spring
飞滕人生TYF20 分钟前
java Queue 详解
java·队列
VertexGeek24 分钟前
Rust学习(八):异常处理和宏编程:
学习·算法·rust
石小石Orz25 分钟前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
武子康41 分钟前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康43 分钟前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
苏-言1 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
界面开发小八哥1 小时前
更高效的Java 23开发,IntelliJ IDEA助力全面升级
java·开发语言·ide·intellij-idea·开发工具