【C语言】冒泡排序

概念

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的列表,一次比较两个元素,并且如果它们的顺序错误就把它们交换过来。通过多次的遍历和比较,最大(或最小)的元素会逐渐“浮”到数列的顶端,因此得名“冒泡排序”。

在这里插入图片描述

代码

方法一:数组

#include<stdio.h>

void Print(int arr[], int size)
{
	for (int i = 0; i < size; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
}

void Sort(int* p1, int* p2)
{
	*p1 = *p1 ^ *p2;
	*p2 = *p1 ^ *p2;
	*p1 = *p1 ^ *p2;
}

void BubbleSort(int arr[],int size)
{
	int flag = 1;
	for (int i = 0; i < size - 1; i++)
	{
		for (int j = 0; j < size - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				Sort(&arr[j], &arr[j + 1]);
				flag = 0;
			}
		}
		if (flag)
		{
			break;
		}
	}
}

int main()
{
	int arr[] = { 34,64,82,41,25 };
	Print(arr, 5);
	BubbleSort(arr, 5);
	Print(arr, 5);
	return 0;
}

方法二:指针

#include<stdio.h>

void printf(int* p, int sz)
{
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", *p++);
	}
	printf("\n");
}

void BubbleSort(int* p, int sz)
{
	int flag = 1;
	for (int i = 0; i < sz-1; i++)
	{
		for (int j = 0; j < sz - 1 - i; j++)
		{
			if (*(p + j) > *(p + j + 1))
			{
				*(p + j) = *(p + j) ^ *(p + j + 1);
				*(p + j + 1) = *(p + j) ^ *(p + j + 1);
				*(p + j) = *(p + j) ^ *(p + j + 1);
				flag = 0;
			}
		}
		if (flag)
		{
			break;
		}
	}
}

int main()
{
	int arr[] = { 23,64,3,7,34,25 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf(arr, sz);
	BubbleSort(arr, sz);
	printf(arr, sz);
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/435311.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Bee Mobile组件库重磅升级

Bee Mobile组件库重磅升级&#xff01; 丰富强大的组件移动预览快速上手create-bee-mobile Bee Mobile组件库重磅升级&#xff01; Bee Mobile组件库最新 v1.0.0 版本&#xff0c;支持最新的 React v18。 主页&#xff1a;Bee Mobile 丰富强大的组件 一共拥有50多个组件&…

挑战杯 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

Python之Web开发初学者教程—ubuntu下vi的使用

Python之Web开发初学者教程—ubuntu下vi的使用 vi\vim 文本编辑器 i 切换到输入模式&#xff0c;以输入字符。 x 删除当前光标所在处的字符。 : 切换到底线命令模式&#xff0c;以在最底一行输入命令。 vi 保存并退出&#xff1a;esc键退出编辑-…

shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; Shell编程专栏&#xff1a;点击&#xff01; CSDN 成就一亿技术人 前言———— shell脚本中的if-else功能对于shell程序员来说是一笔重要的财富。当您需要根据预定义条件执行一组语句时&#xff0c…

【数据结构】堆排序

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解堆排序&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 堆的概念二. 堆排序&#xff08;以升序为例&#xff09;三. 代码 一. 堆的概念 如果有一个…

智能便捷|AIRIOT智慧充电桩管理解决方案

现如今随着对可持续交通的需求不断增加&#xff0c;电动车市场正在迅速扩大&#xff0c;建设更多更智能的充电桩&#xff0c;并通过管理平台提高充电设施的可用性和效率成为一项重要任务。传统的充电桩管理平台在对充电设施进行管理过程中&#xff0c;存在如下痛点&#xff1a;…

Spring AOP(二) — 底层组件

Spring AOP 是通过动态代理的方式来实现&#xff0c;主要是通过Pointcut、Advice、Advisor及ProxyFactoryBean 等接口来创建代理对象。 在IoC容器中&#xff0c;Advice 是一个bean&#xff08;这样可以在通知中使用其他的bean&#xff09;&#xff0c;而Pointcut虽然不是一个B…

【官宣】2024广州国际酒店工程家具及商业空间展览会

2024广州国际酒店工程家具及商业空间展览会 Guangzhou International Hotel Engineering Furniture and commercial space exhibition 2024 时间&#xff1a;2024年12月19-21日 地点&#xff1a;中国进出口商品交易会展馆 承办单位&#xff1a;广州佛兴英耀展览服务有…

同步服务器操作系统公网仓库到本地 _ 统信UOS _ 麒麟KYLINOS

原文链接&#xff1a;同步服务器操作系统公网仓库到本地 | 统信UOS | 麒麟KYLINOS 在如今快速发展的信息技术时代&#xff0c;维护和更新服务器操作系统变得越来越重要。无论是为了提高安全性、增加新功能还是提升系统稳定性&#xff0c;同步公网源仓库到本地都是一个关键步骤。…

Flask入门三(Flask-session的使用、数据库链接池、wtforms、Flask定制命令、Flask-Cache)

文章目录 一、Flask-session使用1.使用方式一2.使用方式二3.读RedisSessionInterface源码4.flask-session补充 二、数据库连接池1.flask中使用mysql2.上述问题解决 使用数据库连接池1.第三方数据库连接池2.操作数据库不带池版3.池版和非池版压测 三、wtforms四、Flask定制命令1…

数据结构部分

来源地址 一 数据结构 1 堆和树之间的区别 区别就在于树是没有特定顺序的&#xff0c;你需要遍历整个树才能找到特定元素&#xff1b;而堆是有序的&#xff0c;你可以直接找到最大&#xff08;或最小&#xff09;的元素。 堆&#xff1a;假设你正在开发一个任务调度系统&…

IOS使用Unity容器动态加载3D模型

项目背景 我们的APP是一个数字藏品平台,里面的很多藏品需要展示3D模型,3D模型里面可能会包含场景,动画,交互。而对应3D场景来说,考虑到要同时支持iOS端,安卓端,Unity是个天然的优秀方案。 对于Unity容器来说,需要满足如下的功能: 1.在APP启动时,需要满足动态下载最…

CCF-A推荐会议 安全界顶会ACM CCS‘24 4月29日第二轮投稿!共建更安全的数字世界!

会议之眼 快讯 第31届ACM CCS (ACM Conference on Computer and Communications Security)即计算机和通信安全会议将于 2024 年 10月14日-18日在美国盐湖城举行&#xff01;CCS是美国计算机协会(ACM)安全、审计与控制特别兴趣小组(SIGSAC)主办的一年一度的重要会议。是SIGSAC的…

每周一练--[NewStarCTF 2023 公开赛道]Final

很明显又是ThinkPHP的漏洞&#xff0c;上周还做过类似的。 先看看是哪一个版本的。 得到版号后&#xff0c;去找找payload。 (post&#xff09;public/index.php?scaptcha (data) _method__construct&filter[]system&methodget&server[REQUEST_METHOD]ls -al 这其…

PDF控件Spire.PDF for .NET【安全】演示:加密 PDF 文档

加密PDF是人们常用的保护PDF的方法。无论对于公司还是个人&#xff0c;使用PDF加密来设置一些限制都是必不可少的。为了使PDF文档可供未经授权的用户阅读但无法修改&#xff0c;加密的PDF文档需要两个密码&#xff1a;所有者密码和用户密码。本节将特别介绍一种通过 Spire.PDF …

政安晨:【深度学习处理实践】(一)—— 卷积神经网络入门

深度学习的卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称CNN&#xff09;是一种广泛应用于图像识别、计算机视觉和自然语言处理等领域的深度学习模型。 CNN的主要特点是它能够自动从原始数据中学习特征表示&#xff0c;而无需手动特征工程。这是通过…

2024经济管理、互联网技术与数据分析国际会议(EMITDA2024)

2024经济管理、互联网技术与数据分析国际会议(EMITDA2024) 一、【会议简介】 2024经济管理、互联网技术与数据分析国际会议&#xff08;EMITDA2024&#xff09;旨在汇集来自全球各地的专家、学者和业界领袖&#xff0c;共同探讨经济管理、互联网技术和数据分析领域的最新研究成…

【漏洞复现】网康科技 NS-ASG 应用安全网关 SQL注入漏洞(CVE-2024-2022)

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

【开源】JAVA+Vue.js实现企业项目合同信息系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合同签订模块2.4 合同预警模块2.5 数据可视化模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 合同审批表3.2.2 合同签订表3.2.3 合同预警表 四、系统展示五、核心代码5.1 查询合同…

[CSAWQual 2019]Web_Unagi ---不会编程的崽

不知道刷了多少天了&#xff0c;又是一题关于xxe漏洞的。 web的习惯性操作。 1.功能点&cms 2.源代码 3.敏感文件泄露 当然这是我个人的习惯。这里进入界面后又upload功能&#xff0c;不会是传马吧。但是旁边给了上传文件格式。仅仅只看界面似乎没什么区别&#xff0c;源…