首页 > 其他分享 >冒泡排序的学习与使用

冒泡排序的学习与使用

时间:2024-10-30 18:20:32浏览次数:3  
标签:tmp arr 数列 int 冒泡排序 学习 冒泡 使用

一.什么是冒泡数列?

1.冒泡数列就是元素按ASCII码值从小到大排序的数列,由于很像水中泡泡向上冒出的形态,所以叫冒泡数列,如图:

        


二.如何将一个数列转换成冒泡数列?

        答:使用冒泡排序即可将一个乱序的数列转换成冒泡数列。

        冒泡排序即按ASCII码值把元素从小到大排序,要实现冒泡排序,我们可以写一个这样的函数:

void pao(int sz,int arr[])
{
	int i = 0;
	for (int i = 0; i < sz - 1; i++)
	{
		int j = 0;
		int key = 1;
		for (j = 0; j < sz - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
				key = 0;
			}
		}
		if (key == 1)
		{
			break;
		}
	}
}

        这个函数是针对一维数组的,从函数的变量类型(int arr[])可以看出。其中的sz是数组的长度,arr[]是你想冒泡排序的数组。


三.原理

        原理其实很简单,就是将数组相邻的两个元素进行比较,如果前一个元素比较大,就把他和后一个元素交换位置。

if (arr[j] > arr[j + 1])
{
	int tmp = arr[j];
	arr[j] = arr[j + 1];
	arr[j + 1] = tmp;
	key = 0;
}

        这一部分其实就是在进行这一操作。

        而外层的循环则是用来重复这一操作的。


四.扩展

        除了整形类型,还有其他类型能用冒泡排序吗?

        其实都行,甚至结构体也能进行冒泡排序,ASCII码表上的所有元素都可以按ASCII码值来排序,但是字符串要用strcmp函数进行比较,结构体则要分数字和字符串来比较。


标签:tmp,arr,数列,int,冒泡排序,学习,冒泡,使用
From: https://blog.csdn.net/bitenum/article/details/143286328

相关文章

  • qsort函数的学习与使用
    零.导言    在之前的文章中,我介绍了冒泡排序,即按ASCII码值把元素从小到大排序(文章链接我放在了第五部分,有兴趣的小伙伴可以求看看)。而今天我将继续介绍qsort函数,这个函数可以起到和冒泡排序一样的作用,并且有着更加广泛的应用场景。一.qsort函数的定义    qso......
  • 如何在Vue2项目中使用Mock.js
    引言 首先我们要了解为什么使用Mock.js,我们在前端开发项目期间,可能我们的后端提供接口的速度跟不上我们前端的开发速度,这时我们就需要用到Mock.js来模拟后端接口和数据Mock.js介绍 Mock.js是一个用于生成随机数据和拦截Ajax请求的JavaScript库。它非常适合在前端开发......
  • 【Docker】bridge的基础使用和测试
    参考Bridgenetworkdriver|DockerDocsdockernetwork|DockerDocs命令Usage:dockernetworkCOMMANDManagenetworksCommands:connectConnectacontainertoanetworkcreateCreateanetworkdisconnectDisconnectacontainerfro......
  • 数据库中对触发器的学习
    触发器目录触发器什么是触发器触发器的操作创建触发器查看触发器删除触发器什么是触发器MySQL触发器(Trigger)是一种特殊类型的存储过程,它会在指定的数据库表上执行INSERT、UPDATE或DELETE等DML(数据操纵语言)操作之前或之后自动执行。触发器可以用来实现数据的复杂完整性约束、维......
  • OpenCV与AI深度学习 | 实战 | YOLO11自定义数据集训练实现缺陷检测 (标注+训练+预测
    本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。原文链接:实战|YOLO11自定义数据集训练实现缺陷检测(标注+训练+预测保姆级教程)导 读   本文将手把手教你用YOLO11训练自己的数据集并实现缺陷检测。安装环境YOLO11的介绍和使用这里不再赘......
  • 学习使用IDA
    学习使用IDA文章目录学习使用IDA使用步骤一.查壳二.使用IDAPro(64-bit)或IDAPro(32-bit)打开.exe文件三.按shift+F12,进入下图界面,找到flag,双击四.进入下图界面,点击flag,按ctrl+x,会出现弹窗,点OK五.进入以下界面,点Tab六.进入以下界面,分析代码得到flag(很大几率需要进行动......
  • (30-6)基于NLP用户舆情的交易策略:使用增加嵌入维度的深度学习模型
    30.5.4 使用增加嵌入维度的深度学习模型还有继续提升模型性能的空间,特别是因为我们拥有一个相对较大的数据集,并且数据是由专家进行标注的。嵌入层似乎是构建优秀模型的关键,因此我们将尝试一种使用嵌入层的深度学习方法。我们的深度学习模型将使用20,000的词汇表,并将最大文......
  • 蓝桥杯备赛&学习计划 2024.11—2025.4
    学习计划概览2024年11月到12月-巩固基础,学习基本算法。2025年1月到2月-学习中级算法和数据结构。2025年3月-进阶算法学习和刷题练习。2025年4月-复习重点知识,专注于比赛准备。详细周计划2024年11月:基础知识&基础算法第1-2周:复习基本控制结构(循环、条件语......
  • 【GiraKoo】Manifest中的intent-filter使用
    【笔记】【Android】Manifest中的intent-filter使用笔记系列,内容是从网络搜索的结果,不一定是正确的理解。如果存在谬误,欢迎大家指正。intent-filter是为了标明Activity,Service或者BraodcastReceiver可以相应的intent类型。基本结构<activityandroid:name=".YourActivity"......
  • Windows使用ssh免密登录Ubuntu系统
    1.在Ubuntu系统中配置SSH服务(使用付费或实验室服务器一般不用这一步前人已经栽好树了)首先要确保Ubuntu系统安装并开启了SSH服务。如果没有安装,可以通过以下命令在终端中进行安装:sudoaptupdatesudoaptinstallopenssh-server#安装完成后,检......