C语言函数实现冒泡排序

         前言

        今天我们来看看怎么使用函数的方式实现冒泡排序吧,我们以一个数组为例arr[] = {9,8,7,6,5,4,3,2,1,0},我们将这个数组通过冒泡排序的方式让他变为升序吧。

        代码实现

        

#include<stdio.h>
void bubble_sort(int arr[], int sz)
{
	int i = 0;
	for (i = 0;i < sz - 1;i++)
	{
		//一个数的冒泡泡排序,一趟冒泡排序
		int j = 0;
		for (j = 0;j < sz - 1 - i;j++)
		{
			//如果前面的数比后面大,置换。
			if (arr[j] > arr[j + 1])
			{
				int tmp;
				tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j+1] = tmp;
			}
		}
			
	}
}
int main()
{
	int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
	int sz = sizeof arr / sizeof arr[0];
	//冒泡排序之后输出,升序
	bubble_sort(arr, sz);
	int i;
	//输出
	for (i = 0;i < sz ;i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

        代码解析

        我们从主函数开始吧,首先定义数组arr[] = {9,8,7,6,5,4,3,2,1,0},之后我们通过sizeof操作符来求数组中元素个数,之后我们定义函数bubble_sort来实现冒泡排序,大家这里注意喽,bubble_sort只是我们函数的名字,好了,这里我们进入函数中。

        我们定义函数的形参为数组,这里函数中的形参本质上是一个指针,数组名本质上是数组元素的首地址,当我们将数组元素个数的计算传入函数中时,在计算数组中元素个数的时候sz会为1,这样我们根本就不会进入循环中,程序出现错误,所以我们将sz的计算放置在主函数里,之后通过传参的方式将sz的值传入函数中。

        好了,我们知道数组中元素个数之后,我们就知道了在这个数组中我们需要对多少个数进行冒泡排序,一共进行几趟,之后我们从第一个数开始,与他相邻的数字比较,如果上一个数字比下一个数字大的话,我们将两个数字进行置换。直到我们第一次置换的数字找到它的位置,我们一次的冒泡排序就结束了。我们第二次就从第二个数字开始,这里我们进行一个数的冒泡排序时就需要逐渐递减到最后一个数字,所以我们这里循环使用j<sz-1-i,直到我们最后一个数完成冒泡排序,循环结束。

        置换图解

相关推荐

  1. C语言实现冒泡排序

    2024-04-06 11:00:03       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-06 11:00:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-06 11:00:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-06 11:00:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-06 11:00:03       20 阅读

热门阅读

  1. 【系统架构设计师】- 知识点汇总(易错总结)

    2024-04-06 11:00:03       15 阅读
  2. MongoDB聚合运算符:$maxN

    2024-04-06 11:00:03       12 阅读
  3. 排忧解难:线上问题排查工具箱

    2024-04-06 11:00:03       14 阅读
  4. BitWise-Operation

    2024-04-06 11:00:03       15 阅读
  5. rknn3588 yolov5 学习笔记

    2024-04-06 11:00:03       15 阅读
  6. [C++][特殊类设计][单例模式]详细讲解

    2024-04-06 11:00:03       13 阅读
  7. 2024.3.25力扣每日一题——零钱兑换2

    2024-04-06 11:00:03       14 阅读
  8. 数据大屏:现代数据分析与可视化的重要工具

    2024-04-06 11:00:03       15 阅读
  9. 蓝桥杯算法题:外卖店优先级

    2024-04-06 11:00:03       13 阅读
  10. C. Rudolf and the Ugly String

    2024-04-06 11:00:03       15 阅读