《C 语言与冒泡排序算法的碰撞》

在计算机科学的浩瀚星空中,算法宛如熠熠生辉的星辰,照亮了数据处理与问题解决的漫漫长路。其中,排序算法作为基石,更是备受瞩目。今天,让我们一同走进经典排序算法的世界,探寻冒泡排序的独特魅力吧。

一,排序算法的介绍

排序算法的种类:

上面就是目前为止,所有的排序算法了。我会在以后的博客中,按照上面的顺序依次给大家进行讲解,今天我先给大家讲解比较类的排序算法------冒泡排序

提醒:比较类的排序算法,排序什么数据都行。这个前提是,这些数据是可比较类的数据。比如,我们可以排整型,浮点型,这类的数据都在大家的认知里面,大家可以理解。我们还可以排序字符型,我们排的是这些字符的ASC||编码,所以也可进行排序。

冒泡排序算法的介绍(以整型举例):

有一堆顺序很乱的整数,比如:1,4,5,8,3,9。我们可以把它们按照从小到大的顺序进行排列,也可以按照从大到小的顺序进行排列,它们就像水里面的泡泡一样,从水底到水面,渐渐变大,这就叫冒泡排序。

二,用C实现冒泡排序

在写代码之前,我们要先好好分析一下思路:

举例:有一堆乱序的整数 7 ,2 ,5 ,3 ,8我们假设就按从小到大的排序:2,3,5,7,8

存储:这么多数据,我们肯定要用数组进行存储。

比较:两两相邻数据进行比较,较大的数据排在前面,较小的数据排在后面。

趟数:每一趟要进行相邻数据的比较,无非就是把大的数据放在右边,最后最小的数据就自然而然排好了,所以需要(n-1)趟。n为要排序的数据个数。

接下来,进行代码实现:test.c

cpp 复制代码
#define  _CRT_SECURE_NO_WARNINGS   1
#include <stdio.h>
void my_paopao(int arr[], int sz)
{
	int x = 0;	//趟数
	int y = 0;	//每趟排序次数
	for (x = 0; x < sz - 1; x++)		//趟数
	{
		for (y = 0; y <sz-x-1; y++)		//每趟的次数
		{
			if (arr[y] > arr[y + 1])
			{
				int temp = arr[y];		//存放较大的数
				arr[y] = arr[y + 1];
				arr[y + 1] = temp;
			}
		}
	}
}

void my_printf(int arr[],int sz)		//自己封装个打印函数,防止main函数冗余
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
}
int main()
{
	int i = 0;
	int arr[5] = { 0 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
		scanf("%d", &arr[i]);
	}
	printf("排序之前:");
	my_printf(arr,sz);
	my_paopao(arr, sz);
	printf("排序之后:");
	my_printf(arr, sz);
	return 0;
}

结果运行图:

三,彩蛋时刻!!!

歌曲:《一点》

祝大家每天的生活开开心心快快乐乐的!!!,咱们下期见!!!

相关推荐
欧阳x天1 分钟前
八大排序算法(C语言实现)
数据结构·算法·排序算法
爱睡懒觉的焦糖玛奇朵3 分钟前
【从视频到数据集:焦糖玛奇朵的魔法工具Dataset Cleaner】
人工智能·python·学习·算法·yolo·音视频
xjxijd5 分钟前
行为感知算法赋能运维,提前预判硬件故障与异常访问
运维·算法
江屿风7 分钟前
C++图论基础拓扑排序经典OJ题流食般投喂
开发语言·c++·笔记·算法·图论
芯岭技术郦9 分钟前
MS32C001‑C:极致成本 32 位 MCU
c语言·开发语言·单片机
C+-C资深大佬11 分钟前
C++ 数字与字符串互转
java·c++·算法
满怀冰雪16 分钟前
第12篇-二分答案法-当答案不好求时如何反向搜索
java·算法
KaMeidebaby19 分钟前
卡梅德生物技术快报|兔单克隆抗体应用实战:禽源病原 IFA 检测全流程拆解
前端·人工智能·物联网·算法·百度
CC数学建模21 分钟前
2026年第十六届APMCM 亚太地区大学生数学建模竞赛(中文赛项)赛题A题:自来水厂水质预测与评估完整思路、代码、模型、文章,全网首发高质量分享!
python·算法·数学建模
折哥的程序人生 · 物流技术专研8 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试