交换类排序
本文是上一篇文章的后续,详情点击该链接~
在上一期我们学习了插入类排序的算法后,知道了排序的一些基本的原理。然而实际上排序除了插入类排序以外,还有很多种类的排序算法值得去学。比如,交换类排序,选择类排序,归并类排序还有基数类排序。而今天的交换类排序就有两种算法,它们分别是冒泡排序和快速排序。
冒泡排序
实现原理
冒泡排序其实就是通过一系列的交换动作来达到排序的目的。打个比方,假如现在有两个元素,分别是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