C++实战(三)冒泡排序+两个案例

冒泡排序的习题全集(含答案) 愚人节,灰太狼为了给红太狼惊喜,研发了羊羊打印仪,能够利用青草打印小羊们的模样,于是,灰太狼历经磨难,取来了喜羊羊 懒洋洋 美羊羊 沸羊羊 暖洋洋的毛发。利用这些毛发,他们打印出了羊羊们,叫来红太狼,红太狼很高兴,认为最肥美的杨应该先使用,就和灰太狼善良这从肥到瘦的顺序开始吃,请你设计一个算法,随机输入小羊的体重,并按降序将其输出。1.给定一个包含红色,白色和蓝色,共n个元素的数组nums,原地对他们进行排序,使得相同颜色的元素相邻,并按照共色,白色,蓝色顺序排列。第二种办法是依赖于冒泡排序。 阅读详情


目录

练习案例1:五只小猪称体重

 练习案例2:数组元素逆置

 练习案例3:冒泡排序


练习案例1:五只小猪称体重

案例描述:一组数据中记录了五只小猪的体重,找出并打印最重的小猪

#include<iostream>
using namespace std;
int main()
{
	//用数组保存五只小猪的体重,找到最重的并打印
	int arr[5] = { 100,520,412,85,765 };
	int j = 0;

	for (int i = 0; i < 5 ; i++)
	{
		
		if (arr[i] > j)//比较并找出最重的小猪
		{
			j = arr[i];//把体重赋值给j
		}
		
	}
	cout << "最重的小猪为 :" << j << endl;

	system("pause");

	return 0;
}

结果:

 练习案例2:数组元素逆置

案例描述:声明一个五元素的数组,并将其逆置([1,2,3,5,4]——[4,5,3,2,1])

分析:每次交换头尾两个数,然后依靠自增和自减向内移动,并再次交换

#include<iostream>
using namespace std;
int main()
{
	//元素逆置
	int arr[5] = { 1, 2, 3, 5, 4 };
	cout << "数组逆置前的样子:" << endl;
	for (int i = 0; i < 5; i++)
	{
		cout<< arr[i];
	}
	cout << endl;

	int start = 0;//起始元素下标
	int end = sizeof(arr) / sizeof(arr[0]) - 1;//末尾元素下标
	int tem = 0;//中间元素
	while(start < end)//当前面的数组下标没有后面的数组下标大的时候执行
	{
		tem = arr[start];//将end和start的数据互换
		arr[start] = arr[end];
		arr[end] = tem;
		
        start++;//开始往后交换
		end--;
	}
	cout << "数组逆置后的样子 :" << endl;
	for (int i = 0; i < 5; i++)
	{
		cout << arr[i];
	}
	cout << endl;


	system("pause");

	return 0;
}

 结果如下:

 练习案例3:冒泡排序

作用:最常用的排序算法,对数组内的元素进行排序

  1.  比较相邻的元素,如果第一个比第二个大,则交换他们的位置
  2. 对每一对相邻元素做同样的操作,执行完毕后,找到第一个最大值
  3. 重复以上步骤,每次比较的数量-1,直到不需要比较为止

如:把 {240571389}从大到小重新排列

#include<iostream>
using namespace std;
int main()
{
	//冒泡排序
	int arr[9] = { 2,4,0,5,7,1,3,8,9 };
	cout << "排序前的数字 :" << endl;
	for (int i = 0; i < 9; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;
	//开始冒泡排序
	//外层循环—排序轮数:元素个数-1
	int num1 = sizeof(arr) / sizeof(arr[0]) - 1;//元素个数-1
	for (int j = 0; j <num1; j++)
	{
		//内层循环—对比个数:元素个数-排序轮数-1
		int num2 = sizeof(arr) / sizeof(arr[0]) - j - 1;
		for (int u = 0; u < num2; u++)
		{
			if (arr[u] > arr[u + 1])//如果前一个数字比后一个大,交换顺序
			{
				int temp = arr[u ];
				arr[u] = arr[u + 1];
				arr[u + 1] = temp;
			}	
		}
	}
	cout << "冒泡排序后 :" << endl;//再次输出冒泡排序后的结果
	for (int i = 0; i < 9; i++)//i只在for循环里定义,不会干扰到外面的i(最上面i)
	{
		cout << arr[i] << " ";
	}
	cout << endl;


	system("pause");

	return 0;
}

 结果如下:

 建议大家手动尝试下冒泡排序,听说这是面试必问之一(手动狗头,我也不太清楚)

C++算法之冒泡排序 C++算法之冒泡排序 文章目录C++算法之冒泡排序一、基本思想二、步骤冒泡排序冒泡过程三、代码四、复杂度分析 一、基本思想 试想一下,如果在上体育课的时候,通常学生都会随意站成一列,但是体育老师会帮忙调整学生的站位使得最终顺序是按照身高排序的。那么,回忆一下体育老师是如何调整顺序的呢? 假设体育老师想将学生从左到右按照身高从矮到高排序。通常情况下,他会从左到右扫视学生的身高。如果左边有一个同学,个子比右边的同学高,他就要将其进行调整。具体调整方法是: 如果一个同学比他右边的同学高,就让这两个同学交换位置 阅读详情

相关推荐

冒泡排序(bubbleSort.cpp)

冒泡排序1:bubbleSort1.cpp 【题目描述】 给定整数n(待排序整数的个数)和k(冒泡排序的趟数)、以及n个待排序的整数,要求从小到大进行k趟冒泡排序,并输出第k趟冒泡排序后的结果,各整数之间用一个空格隔开。每趟排序从左到右扫描未排序数据,并将最大的元素交换(移动)到未排序数据的右端。 【输入】 输入bubbleSort1.in的第一行有一个整数n(1为待排序数据的个数;紧接着

AengusChen的博客 1687

python 冒泡排序例子集合(个人练习,温故而知新)

字符串的字母从小到大冒泡排序 s = "hdjdopanndfyazgbz" list01 = list(s) #字符串转成列表 #接下来是列表的冒泡排序 for i in range(len(list01)-1): for j in range(len(list01)-1-i): if list01[j] > list01[j+1]: list01[j], list01[j+1] > list01[j+1], list.

qq_38946095的博客 3476

C++实现冒泡排序算法(含源码)

冒泡排序是一种简单的排序算法,它通过不断交换相邻的元素,将较大的元素逐步"浮"到待排序列的尾部,从而实现排序。该函数接受一个整型数组和数组长度作为参数,在每次遍历中,它比较相邻的两个元素,将较大的元素向后交换。最终,得到一个有序的数组。以上是C++实现冒泡排序算法的例子。在实际开发中,我们可以通过调用这个函数来实现对数组的排序,从而提高程序的效率和准确性。C++实现冒泡排序算法(含源码)

. 5961

冒泡排序经典案例

一、购物问题   小明的女朋友最喜欢在网上买买买了,可是钱包里钞票有限,不能想买啥就买啥。面对琳琅满目的物品,她想买尽可能多的种类,每种只买一件,同时总价格还不能超过预算上限。于是她请小明写程序帮她找出应该买哪些物品,并算出这些物品的总价格。以下是代码实现: import java.util.Arrays; public class Test { public static voi...

a116385895的博客 7862

C++实现冒泡排序算法详解

在C++中实现冒泡排序,我们通常会定义一个函数,以便可以在其他地方复用这段排序代码。这个函数通常会接受一个数组作为参数,并可能需要知道数组的长度。在开始编写冒泡排序的代码之前,我们需要定义一个数组并初始化它。这个数组将作为排序算法的输入。在C++中,数组可以是静态分配的,也可以是动态分配的。为了简单起见,这里我们将使用一个静态分配的数组。// 排序逻辑将在此处实现return 0;在上述代码段中,我们首先包含了iostream库,以便我们能够在控制台上输出结果。

weixin_28939623的博客 2007

掌握C++中的冒泡排序算法

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。数组是C++中存储同类型数据的复合数据结构。每一个数据称为一个元素,数组中的所有元素在内存中是连续存放的,这使得对数组元素的访问非常高效,但同时也意味着数组的大小在定义后无法改变。数组的定义格式为:其中type表示数组元素的类型,

weixin_29069575的博客 1128

C++经典案例

C++编程经典案例摘要 本文展示了C++编程中的几个经典案例,包括: 水仙花数 - 找出所有3位数中各位数字立方和等于自身的数(如153) 乘法口诀表 - 使用嵌套循环实现九九乘法表的输出 数组操作: 数组元素倒置算法 冒泡排序算法实现 回文数判断: 字符串转换方法 反转一半数字方法 立方体类设计 - 创建Cube类并实现面积、体积计算及相等判断功能(成员函数和全局函数) 这些案例涵盖了C++中的基本语法、循环结构、数组操作、算法实现和面向对象编程等核心知识点,适合C++初学者学习参考。

木随风动的博客 1万+

C++实现的冒泡排序算法详解

冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序是计算机科学中最简单的排序算法之一。其基本思想是通过重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行直到没有再需要交换,也就是说该数列已经排序完成。

weixin_42124497的博客 1553

C++结构体案例

C++结构体 文章目录C++结构体一、结构体数组案例将结构体按指定数据排序案例描述:简单思路:源码如下:二、嵌套结构体案例通过子函数赋值、打印案例描述:源码如下: 本人小白,在读大学生,感觉学校教的远远不够,于是自学C++,可能又许多不足之处,还希望有大佬们能指点指点,感激不尽。 一、结构体数组案例 将结构体按指定数据排序 案例描述: 设计一个英雄结构体,包括成员信息 姓名、年龄、性别,创建结构体...

huan_xin_的博客 1291

冒泡排序练习题1

} }数组元素A[1]到A[10]的值依次为{10,9,8,7,6,5,4,3,2,1},经过该程序段加工后,数组元素A[8]的值为( A ) A 7 B 8

【东华大学oj】找到最大数(一维数组->中等)

一天,老师布置了一个作业,要求对一串数字各不相同的数字串进行排序,大的在前,小的在后。接着,我从数字串中的第二个数字开始往后找,找到最大的一个,然后与第二个数字交换,这样的话我就能够确定排序后数字串中的第二个数字;明明研究发现,他的这个想法中最重要的一环就是在一串数字中找到最大的那个,然后与第一个数字交换,可是明明毕竟刚刚开始学习程序设计不久,无法写出较复杂的程序,所以明明想让你这位程序设计专家帮他的忙,帮助他把这段核心程序写出来,然后明明只需模仿着写就可以了。时间限制: 1S类别: 一维数组->中等。

的博客 525

【c++】冒泡排序

原来这就是冒泡排序啊 Bubble Sort 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序” 案例 将 n (n <= 1

请你喝杯Java 3429

倾斜摄影与激光点云融合建模:Photoscan+ContextCapture避坑指南

本文详细解析了倾斜摄影与激光点云融合建模的技术流程,重点介绍了使用Agisoft Metashape(原Photoscan)与ContextCapture进行数据融合的实战指南。文章深入探讨了数据预处理、坐标系统一、空三计算策略及在ContextCapture中进行点云配准等关键步骤,旨在帮助从业者规避常见陷阱,高效构建兼具高精度几何与真实纹理的三维实景模型。

weixin_29062613的博客 250

CPP实现简单的冒泡排序

冒泡排序来来回回写了好多次,今天写完索性把它记录成一篇博客。 1. 算法思想 假设数组的长度为 lenlenlen,那么需要进行 len−1len-1len−1 趟排序,iii 代表躺数; 对于每趟排序,涉及到的比较次数是 len−ilen-ilen−i 次。 eg.eg.eg. 有10个数进行排序,排序的躺数为9躺,第一趟排序需要比较9次,第二趟排序需要比较8次。 2. CPP代码 #inclu...

hxb513443949987的博客 1187

方差分解分析变量筛选与显著性计算

冗余分析(redundancy analysis,RDA)是一种回归分析结合主成分分析的排序方法,也是多响应变量(multiresponse)回归分析的拓展。在进行VPA时,首先就要对这些环境因子进行一个分类,然后在约束其它类环境因子的情况下,对某一类环境因子进行排序分析,这种分析也成为偏分析,即partialRDA。在地球环境科学的实际应用中,可以基于VPA结果得出不同类型的环境因素(如何气候、土壤性质以及植物)对生物群落组成(如植被丰度,微生物群落)的解释程度。对于由或创建的排序对象,函数。

wlh2067的博客 2520

从入门到精通:MATEKH743 飞控全解析——MAVLink 接口软/硬件对接实战

MATEKH743飞控是基于STM32H743微控制器的无人机核心控制系统,具备强大计算能力和丰富外设接口。该飞控采用双核架构,集成高性能IMU、气压计等传感器,支持多种开源固件(Betaflight/INAV/ArduPilot),适用于FPV穿越机、固定翼及工业无人机。相比PX4等飞控,MATEKH743在性价比和DIY友好度上优势明显,同时支持MAVLink协议实现设备通信。未来发展方向包括集成更高精度传感器、优化电源管理以及拓展工业应用场景,持续推动无人机技术创新。

bother3000的博客 2285

[PHP-CPP]使用C++来扩展PHP的能力

一个使用C++来开发PHP扩展的开源项目 什么是PHP-CPP? 它是一个C++库,用来开发PHP的扩展.它提供了一个文档丰富且易于使用的类库,可以使用这些类库开发PHP的扩展.也就是说我们可以用C++来开发PHP的扩展了. 为什么要使用PHP-CPP? 使用这个C++库,可以非常享受的开发出一个PHP的扩展,使用它编写的代码简单易懂,并且能为你的软件带来很大的提升. 使用PHP-CPP的特性和原因 1.性能更快 使用C++编写的代码相比PHP的代码来说,非常非常快,在官网给出的一个冒

PHP武器库 1505

电子工程师必看:2024年IPC-A-610J和J-STD-001J新标准到底更新了啥?

本文深入解析2024年IPC-A-610J和J-STD-001J新标准的核心更新,重点关注电子制造领域的验收标准与工艺参数变化。新版标准强化了高密度组装和微焊接工艺的规范,包括焊料润湿角调整、BGA空洞率严格化等关键变更,为电子工程师提供实用指南。同时关联IPC-7711/21D和IPC-2221C的配套更新,助力企业快速适应新标准要求。

weixin_33694620的博客 784

c++冒泡排序详解

冒泡排序是一种简单但有效的排序算法,通过多次比较和交换相邻元素的方式将序列逐步调整为有序。冒泡排序是最简单的排序算法之一,它通过多次比较和交换相邻元素的方式将待排序的序列逐步调整为有序的序列。本文将详细介绍冒泡排序的原理、步骤以及使用C++代码实现的方法,并探讨其时间复杂度和应用场景。尽管冒泡排序的时间复杂度较高,但对于小规模的数据或者已经接近有序的序列,冒泡排序仍然是一个简单而有效的选择。冒泡排序的原理很简单:重复遍历待排序序列,比较相邻的两个元素,并根据需要交换它们的位置,直到序列完全有序。

浪子回头 5516

【Unity 实用工具篇】| Unity中 实现背景模糊效果,简单易用

背景模糊 是一个很实用的功能,它可以帮助游戏在视觉上有更好的专注力和表现力。 实现模糊的种类和方式有很多种,大家自行选择适合自己的就可以了。 下面一起来看下本文实现背景模糊的效果和使用方式吧!

努力前行,总会成为自己心中的那道光 4万+

Python 爬虫实战:医学临床指南爬取(含 PDF 解析与结构化存储)

在当今数字化时代,医学临床指南作为医生进行科学诊疗的重要参考资料,包含大量经过临床验证的诊疗路径和建议。这些指南通常发布在权威医学网站上,数量庞大且更新频繁。如何自动化地抓取并存储这些指南,成为医疗数据分析、医学研究以及医疗 AI 模型训练等工作的关键第一步。本文将系统讲解如何利用 Python 爬虫技术从权威医学网站爬取临床指南内容,并实现 PDF 解析与结构化存储。

u014481728的博客 450

C++冒泡排序

因为内层循环每完成一次,最大那个值(或最小那个值),就已经交换到了最后的位置,所以下次交换的时候我们就要减少一次交换已经排序好的元素,依次类推,所以就有。但上面主函数的 buf1 数组中,只有 5 是需要排序的,其他的都不用排序,好像就是直接把 5 放在最后面即可完成排序了,也就是进行排序 1 次就行了,现在在小优化一下。,原因是在 if 那里退出了,cnt 少加了 1 次,不过这个影响不大。结果说明,某种的优化只能说针对某一个方面,最后还是得见招拆招。当然,这不是万能的哈,比如这样,它就不适用了,把。

qq_73554831的博客 1346

Hermes Agent 常见报错排查与问题解决

Hermes Agent 常见报错排查指南 摘要 本文全面梳理了 Hermes Agent 使用过程中的10类常见报错,按阶段划分为安装期、运行期认证类、后端基础设施类和长任务执行类四大类,并提供了系统化的排查流程: 安装期问题:包括命令未找到和Python版本不兼容,主要检查PATH环境和Python版本是否符合要求 认证类问题:涉及API Key认证失败和速率限制,需要验证密钥配置和配额状态 基础设施问题:包含Docker报错、MCP连接失败和OAuth令牌过期,需检查相关服务状态 执行类问题:主要是上

简简单单Onlinezuozuo 1347

C++结构体案例:英雄信息冒泡排序案例 解析

定义了一个Hero结构体,用于存储英雄的姓名、年龄和性别。实现了一个bubbleSort函数,用于对英雄数组按照年龄进行冒泡排序。实现了一个printHero函数,用于打印英雄数组中的信息。在main函数中,创建了一个包含5名英雄的数组,并进行了排序和打印操作。int age;string sex;这里定义了一个Hero结构体,包含了英雄的姓名、年龄和性别三个属性。通过这个案例,我们学习了如何在C++中使用结构体来定义复杂的数据类型,并且实现了冒泡排序算法来对结构体数组进行排序。

Alex的博客 725

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CPP2022-19-数组-冒泡排序

c++初学习题

timberman666的博客 3148

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【冒泡排序】c++实现冒泡排序代码

【冒泡排序】c++实现冒泡排序代码 冒泡排序的基本思想: 冒泡排序的核心是对所有相邻数组元素的值进行比较,如果是逆序(a[i]>a[i+1]),则两者交换,最终达到有序。 步骤: (1)比较第一个数a[0]和第二个数a[1],如果a[0]>a[1],则,两个数组元素的值交换;然后接着比较第二个数a[1]和第三个数a[2],以此类推,直到第n-1个数a[n-1]与第n个数a[n]比较为止。这个过程是第一趟冒泡排序,其结果是将数组中最大的值放到了最后一个位置上。 (2)第二趟冒泡排序,是对前n-1个

qq_39543174的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: C++学习之旅(九) 一维数组的定义
下一篇: C++学习之旅(十) 二维数组的定义
Pinospot
博客等级 码龄5年 10粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值