C语言—冒泡排序

冒泡排序的核心思想:两个相邻的元素进行比较。

一趟冒泡排序让一个数据来到它最终应该出现的位置上。

cpp 复制代码
#include <stdio.h>

void bubble_sort(int arr[],int sz)
{
	int i = 0;
	int j = 0;
	int t = 0;
	for(i = sz-1;i >= 0;i--)
		for(j = 0;j < i;j++)
			if(arr[j+1] < arr[j])
			{
				t = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = t;
			}
}

int main()
{
	int arr[10] = {10,2,3,14,5,6,17,8,9,1};
	int i = 0;
	int j = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);
	bubble_sort(arr,sz);
	for(i = 0;i < 10;i++)
		printf("%d\n",arr[i]);
	return 0;
}

数组名本质上是:数组首元素的地址。

地址应该使用指针来接收,所以上面bubble_sort()函数中的形参int arr[ ]看似是数组,本质上是指针变量,所以不能在函数内部计算数组的大小,可以在主函数内计算了之后通过传参传递到函数内部。

相关推荐
岑梓铭几秒前
《考研408数据结构》第三章3(数组矩阵)复习笔记
数据结构·笔记·矩阵
Fcy6481 分钟前
算法竞赛有关数据结构的补充(3)—— 二叉树、堆和哈希表的静态实现(包括红黑树和AVL树动态实现)
数据结构·算法·散列表
代码探秘者1 分钟前
【算法篇】6.分治
java·数据结构·后端·python·算法·排序算法
TechPioneer_lp4 分钟前
2026微软SDE LeetCode高频题:208道,按频度排序,含备考建议
算法·leetcode·microsoft·leetcode刷题·大厂算法刷题·微软sde·微软笔试题
C++ 老炮儿的技术栈5 分钟前
Tcp客户端报错原因分析
linux·c语言·网络·c++·网络协议·tcp/ip
科德航空的张先生5 分钟前
空管模拟器在塔台指挥训练中的应用与效能分析
人工智能·算法
co_wait7 分钟前
【C语言】Linux系统文件操作函数基本使用
linux·c语言·microsoft
勤劳的进取家9 分钟前
Excel 公式使用手册(精简)
算法·excel
xiaoye-duck9 分钟前
《算法题讲解指南:优选算法-哈希表》--56.两数之和,57.判断是否互为字符重排
c++·算法·哈希表
米粒116 分钟前
力扣算法刷题 Day23
数据库·算法·leetcode