2021-06-19

数据结构中使用C语言对于冒泡排序的是实现(简明版)


前言

相信大家学习完数据结构后对于排序算法的具体实现还是有些懵逼,大部分书上也都只有伪代码,所以在接下来的几篇博客中会尽我所能去帮助大家理解数据结构中的排序算法,并给出具体的实现代码。


一、冒泡排序的大致思路

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

二、具体实现代码

##大部份的实现均是从前往后进行比较,因此此文中代码采取从后往前的比较方法

代码如下:

#include<stdio.h>
#include<stdlib.h>

//冒泡排序
void bubbleSort(int arry[],int size) {
	int bound = 0;
	//已排序区间  [0,bound)
	//未排序区间  [bound,size)

    //在已排序区间中从后往前两两比较
	for (bound; bound < size; bound++) {
		for (int i = size - 1; i > bound; i--) {
			//如果i小于i-1,交换两个值
			if (arry[i] < arry[i - 1]) {
				int temp = arry[i - 1];
				arry[i - 1] = arry[i];
				arry[i] = temp;
			}
			else {
				continue;//如果i大于i-1,则继续比较剩下的值
			}

		}
	}
}



int main() {
	int arry[] = { 3,5,2,6,9,1,7,10 };
	int sizeOfArry = sizeof(arry) / sizeof(arry[0]);
	bubbleSort(arry, sizeOfArry);
	for (int i = 0; i < sizeOfArry; i++) {	 //打印排序之后的数组
		printf("%d\t",arry[i]);
	}
}

总结

本章主要介绍了C语言对于数据结构中冒泡排序的具体实现。

上一篇:数组基本操作及冒泡算法、直接选择排序


下一篇:Mybatis 联合查询XML与注解对比