C语言实现冒泡排序

什么是冒泡排序?

冒泡排序是一种简单的排序算法,它的工作原理是比较列表中的相邻元素,如果元素不符合指定顺序,则交换它们。它是一种就地且稳定的排序算法,可以对数组和链表等数据结构中的项进行排序。

C 中的冒泡排序算法

C中使用冒泡排序对列表数据进行升序排序的算法是:

  • 运行两个相互嵌套的循环。
  • 外部循环将从i = 0 运行到 i < n -- 1 ,其中 n 是列表中的元素数量。
  • 内部循环将从j = 0 运行到 j < n -- i -- 1 。这是因为,在外循环的每次迭代之后,末尾的一个元素(如果顺序是递减顺序,则在开头)将位于正确的位置,因此我们可以保持原样。
  • 在内循环中,我们将检查arr j > arr j + 1 是否。
    • 如果这是****真的,****那么我们将交换这些元素的位置。
    • 如果为false ,我们将继续下一次迭代。
  • 该过程将重复进行,直到满足循环条件为止。

对于降序

  • 内循环将从j = i 运行到 j < n -- 1。
  • 我们将比较元素为arr j < arr j + 1

其他一切都会一样。

C 冒泡排序程序

cs 复制代码
//实现冒泡排序的C程序
#include <stdio.h> 

//实现冒泡排序的C程序
void swap(int* arr, int i, int j) 
{ 
	int temp = arr[i]; 
	arr[i] = arr[j]; 
	arr[j] = temp; 
} 

//冒泡排序函数
void bubbleSort(int arr[], int n) 
{ 
	int i, j; 
	for (i = 0; i < n - 1; i++) 

		//最后i个元素已经存在
		// 就位
		for (j = 0; j < n - i - 1; j++) 
			if (arr[j] > arr[j + 1]) 
				swap(arr, j, j + 1); 
} 

 //打印数组的函数
void printArray(int arr[], int size) 
{ 
	int i; 
	for (i = 0; i < size; i++) 
		printf("%d ", arr[i]); 
	printf("\n"); 
} 

// 驱动代码
int main()
{ 
	int arr[] = { 5, 1, 4, 2, 8 }; 
	int N = sizeof(arr) / sizeof(arr[0]); 
	bubbleSort(arr, N); 
	printf("排序数组: ");
	printArray(arr, N); 
	return 0; 
}
相关推荐
深圳市快瞳科技有限公司7 分钟前
个体识别、行为解读、健康管理:多模态宠物AI大模型的场景化落地
人工智能·算法·计算机视觉·大模型·多模态·宠物·宠物ai识别
liulilittle14 分钟前
归一化:激活函数
人工智能·算法·机器学习·llm
小短腿乄18 分钟前
java实现pdf加水印+签名
java·开发语言·pdf
云烟成雨TD38 分钟前
Micrometer 系列【29】源码分析:MeterRegistry 实例化流程
java·云原生·micrometer
聆风吟º40 分钟前
【金仓数据库征文】Java 应用接入金仓数据库:从驱动、连接池到存储过程调试的踩坑实录
java·开发语言·数据库
Mem0rin2 小时前
前缀和:一维与二维
数据结构·算法
似璟如你2 小时前
Java 开发者的 Go 语法基础:从 0 开始快速上手 Go
java·开发语言·后端·golang·go·编程语言
小趴蔡ha2 小时前
12 K-Means 聚类入门:没有标签如何发现数据分组
算法·kmeans·聚类
-dzk-2 小时前
【二叉树】LC 101.对称二叉树
算法·二叉树
zzz_23682 小时前
TencentDB-Agent-Memory 深度解析:让多个 Agent 共享项目经验的记忆中枢
java·开发语言·jvm·人工智能·agent·memory·tencent db