排序算法~交换类排序

本文详细介绍了交换类排序中的冒泡排序和快速排序。冒泡排序通过不断交换相邻元素实现排序,时间复杂度为O(n²),空间复杂度为O(1)。快速排序则采用划分策略,平均时间复杂度为O(nlog2n),最坏情况下为O(n²),空间复杂度为O(log2n)。
摘要由CSDN通过智能技术生成

交换类排序

本文是上一篇文章的后续,详情点击该链接~

       在上一期我们学习了插入类排序的算法后,知道了排序的一些基本的原理。然而实际上排序除了插入类排序以外,还有很多种类的排序算法值得去学。比如,交换类排序,选择类排序,归并类排序还有基数类排序。而今天的交换类排序就有两种算法,它们分别是冒泡排序和快速排序。

冒泡排序

实现原理

       冒泡排序其实就是通过一系列的交换动作来达到排序的目的。打个比方,假如现在有两个元素,分别是A和B。A比B大,那么我们就要让A排到B的后面。这个时候我们可以定义一个新的变量来存储A的值,比如说我定义temp存储A的值,然后把B的值给A。这个时候A和B一样。由于刚刚A的值给了temp,所以我们现在把temp的值给B,那么这就实现了两个元素的交换了~

代码实现

void BubbleSort(int arr[],int n) {
   
	int i, j, flag, temp;
	for (i = n - 1; i >= 1; i--) {
   
		//flag 是用来标记是否发生了交换
		flag = 0;		
		for (j = 1
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值