排序算法之冒泡排序篇

冒泡排序的思想:

是一个把元素从小到大排的一个算法思想

相邻的两个元素两两比较,大的那一个元素向后移,小的那个元素向前移

核心逻辑:

比较所有相邻的两个项,如果第一个比第二个大,就交换它们

从头开始:

第一轮排序时:每相邻的两个元素进行比较,

让大的元素排在后面,

让小的元素排在前面,

第一轮排序之后就让最大的元素排在了最后面,

一共要进行n-1轮的排序,即如果一共有n个元素,那么就要进行n-1轮的排序

视频实现冒泡排序

文字描述如上,以下是冒泡排序的视频全过程

冒泡排序全过程

代码实现冒泡排序

接下来我们进行代码的实现

用一个方法来实现这个冒泡排序

java 复制代码
public static void bubble(int[] arr){
	//外层循环的是一共要比较循环多少遍,即要进行多少轮的排序
	for(int i = 0;i < arr.length-1; i++){
		//内层循环的是每一轮循环一共要比较多少次
		for(int j = 0; i <arr.length -i-1; j++){
			if(arr[j] > arr[j+1]){
				//如果第一个元素大于第二个就交换
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
}

时间复杂度分析:

最好情况:

O(N):最好情况之下,数组完全是有序的,但是冒泡排序仍然需要进行一次循环

最坏情况:

O(N^2):最坏情况之下,数组是完全逆序的,冒泡排序需要进行(n-1)次循环

相关推荐
Liudef0631 分钟前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算
OYpBNTQXi2 小时前
SEAL全同态加密CKKS方案入门详解
算法·机器学习·同态加密
yuannl102 小时前
数据结构----队列的实现
数据结构
蚂蚁数据AntData2 小时前
破解AI“机器味“困境:HeartBench评测实践详解
大数据·人工智能·算法·机器学习·语言模型·开源
ZC跨境爬虫2 小时前
Python异步IO详解:原理、应用场景与实战指南(高并发爬虫首选)
爬虫·python·算法·自动化
Mr_Xuhhh3 小时前
从ArrayList到LinkedList:理解链表,掌握Java集合的另一种选择
java·数据结构·链表
倦王3 小时前
力扣日刷47-补
python·算法·leetcode
沉鱼.443 小时前
第十三届题目
c语言·c++·算法
ZHOU_WUYI3 小时前
ppo算法简单实现
人工智能·pytorch·算法
无限进步_4 小时前
【C++】巧用静态变量与构造函数:一种非常规的求和实现
开发语言·c++·git·算法·leetcode·github·visual studio