从入门到精通,30天带你学会C++【第九天:排序合集】

news2025/2/4 18:51:56

Everyday English

Never put off what you can do until tomorrow.         

今日事,今日毕。

前言

首先跟大家说声抱歉,我已经25天没写博客了,我知道我掉了很多粉丝,但是还有很多人坚持关注着我,在这里我表示感谢。

排序合集

我在网上找到了一个能演示的动画,每种排序算法只需点击‘GIF’即可演示:

排序算法大合集-biubiubiu~ - 知乎稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序; 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序 1.冒泡排序比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/567134257那么今天我们将介绍其中的三种:冒泡排序,选择排序和直接排序(Sort)

冒泡排序

详细解释

顾名思义,每相邻两个比较一次,像冒泡一样,具体怎么比较请看例子:

初始序列:3 4 2 1

---------------第一轮---------------

第一次(比较3和4):3 4 2 1 --- 3 4 2 1

第二次(比较4和2):3 4 2 1 --- 3 2 4 1

第三次(比较4和1):3 2 4 1 --- 3 2 1 4

---------------第二轮---------------

第一次(比较3和2):3 2 1 4 --- 2 3 1 4

第二次(比较3和1):2 3 1 4 --- 2 1 3 4

---------------第一轮---------------

第一次(比较2和1):2 1 3 4 --- 1 2 3 4

冒泡排序:每次比较相邻的两个数,若第一个数大于第二个数则交换位置,每轮排完保证最大的位置正确

示范代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,a[1000];//n为排序的个数
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]; 
	for(int i=n;i>=1;i--)
    {
        for(int j=1;j<i;j++)
        {
            if(a[j]>a[j+1])
            {
                swap(a[j],a[j+1]);
            }
        }
    }
	for(int i=1;i<=n;i++) cout<<a[i]<<" "; 
	return 0;
}

选择排序

详细解释

顾名思义,即每个数和其他的数逐个比较(除了已经排好序的),举个栗子:

注:我个人感觉选择排序更好理解一些,我也更喜欢用选择排序

初始序列:3 4 2 1

---------------第一轮---------------

第一次(比较3和4):3 4 2 1 --- 3 4 2 1

第二次(比较3和2):3 4 2 1 --- 2 4 3 1

第三次(比较2和1):2 4 3 1 --- 1 4 3 2

---------------第二轮---------------

第一次(比较4和3):1 4 3 2 --- 1 3 4 2

第二次(比较3和2):1 3 4 2 --- 1 2 4 3

---------------第一轮---------------

第一次(比较4和3):1 2 4 3 --- 1 2 3 4

选择排序:每个数和其他的数逐个比较(除了已经排好序的),若第一个数大于第二个数则交换位置,每轮排完保证最小的位置正确

示范代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,a[1000];//n为排序的个数
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]; 
	for (i=1;i<=n-1;i++)
    {
        for (j=i+1;j<=n;j++)
        {
			if (a[i]>a[j])      
            {  
				swap(a[i],a[j]); 
            }
        }
    }
	for(int i=1;i<=n;i++) cout<<a[i]<<" "; 
	return 0;
}

直接排序

直接排序直白来说就是sort了,它的功能是将一个序列从小到大排列。

示范代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,a[1000];//n为排序的个数
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]; 
	sort(a+1,a+n+1);
	for(int i=1;i<=n;i++) cout<<a[i]<<" "; 
	return 0;
}

特殊

如果你想要从大到小排序,或者自己定义一种排序方法该怎么办呢?

我这里这演示从大到小的示范代码:

#include<bits/stdc++.h>
using namespace std;
bool cmp(int x,int y)
{
    return x>y;
}
int main()
{
	int n,a[1000];//n为排序的个数
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]; 
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++) cout<<a[i]<<" "; 
	return 0;
}

运行结果

超大福利+结尾

这篇博客还有很多不足之处,欢迎指出。再次感谢所有粉丝对我的支持,准备到1888粉丝时,整个大的活,也欢迎大家点赞支持哦!

透露一下:和这个大活有关联的词:随机 粉丝 美术 挑战

欢迎大家猜一猜,好了,时间也该到了,拜拜!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ Qt开发:QSqlDatabase数据库组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍QSqlDatabase数据库模块的常用方法及灵活运用…

【软件工程大题】白盒测试

给出一个简单的测试样例,然后再进行白盒测试的讲解 if A and B then action1 if C or D then action2 1.语句覆盖 每个语句执行一次 也就是,样例中的每个语句执行一次,至于ABCD取值,要满足IF条件,让四个语句都执行一次 A and B -> T ⇒ AT …

蓝桥杯的学习规划

c语言基础&#xff1a; Python语言基础 学习路径&#xff1a;画框的要着重学习

2023年教程汇总 | 《小杜的生信笔记》

2023年总结 2023年即将结束&#xff0c;我们即将迎来2024年。2023年&#xff0c;我们做了什么呢&#xff1f;&#xff1f;这个是个值得深思的问题…? 12月份是个快乐且痛苦时间节点。前一段时间&#xff0c;单位需要提交2023年工作总结&#xff0c;真的是憋了好久才可以下笔…

【数据结构】无向图的最小生成树(Prime,Kruskal算法)

文章目录 前言一、最小生成树二、Kruskal算法1.方法&#xff1a;2.判断是否成环3.代码实现 三、 Prim算法1.方法&#xff1a;2.代码 四、源码 前言 连通图&#xff1a;在无向图中&#xff0c;若从顶点v1到顶点v2有路径&#xff0c;则称顶点v1与顶点v2是连通的。如果图中任意一对…

医院信息化-6 大模型与医疗

之前写了一系列跟医疗信息化相关的内容&#xff0c;其中有提到人工智能&#xff0c;但是写的都是原先的一些AI算法基础上的医疗应用。现在大模型出现的涌现推理能力确实让人惊讶&#xff0c;并且出现可商用化的可能性&#xff0c;因此最近一年关于大模型在医疗的应用也开始出现…

ComfyUI如何中文汉化

comfyui中文地址如下&#xff1a; https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Translationhttps://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Translation如何安装&#xff1f; 1. git安装 进入项目目录下的custom_nodes目录下&#xff0c;然后进入控制台&#xff0c;运…

Java——基本数据类型

Java基本数据类型 一、 整型1. byte2. short3. int4. long 二、浮点型1. float2. double 三、 字符型(char)四、 布尔型&#xff08;boolean&#xff09; 总结 算下刚转Java到现在也有三个多月了&#xff0c;所以打算对Java的知识进行汇总一下&#xff0c;本篇文章介绍一下Java…

Linux之用户/组 管理

关机&重启命令 shutdown -h now立刻进行关机shutdown -h 11分钟后关机&#xff08;shutdown默认等于shutdown -h 1) -h即halt shutdown -r now现在重新启动计算机 -r即reboot halt关机reboot重新启动计算机sync把内存数据同步到磁盘 再进行shutdown/reboot/halt命令在执行…

【支持向量机】SVM线性可分支持向量机学习算法——硬间隔最大化支持向量机及例题详解

支特向量机(support vector machines, SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器。包含线性可分支持向量机、 线性支持向量机、非线性支持向量机。 当训练数据线性可分时&#xff0c;通过硬间隔最大化学习线性分类器&#xff0c; 即为线性…

提升泵类设备性能的解决方案:基于AI的预测性维护

随着工业的智能化和数字化发展&#xff0c;设备维护的方式得到不断优化。人工智能&#xff08;AI&#xff09;、机器学习和云计算等先进技术的引入&#xff0c;使得设备健康管理系统的数据采集、实时分析、故障预警与智能诊断等能力得到提升。借助这些设备预测性维护手段&#…

LISN到底是啥?干啥用的?

LISN是在EMC测试的时候&#xff0c;会被使用的设备&#xff0c;如下图所示&#xff1a; 双路V型电源阻抗稳定网络。它完全符合CISPR16-1-2、MIL-STD 461F、VDE 0876、FCC Part 15标准的要求&#xff0c;其等效电路为50Ω||&#xff08;5Ω50μH&#xff09;&#xff0c;频率范围…

vue3使用mixins

<template><div>{{ num }}___{{ fav }}</div><button click"favBtn">改变值</button> </template><script setup lang"ts"> import mixin from "../mixins/mixin"; let { num, fav, favBtn } mixin(…

【微服务核心】Spring Boot

Spring Boot 文章目录 Spring Boot1. 简介2. 开发步骤3. 配置文件4. 整合 Spring MVC 功能5. 整合 Druid 和 Mybatis6. 使用声明式事务7. AOP整合配置8. SpringBoot项目打包和运行 1. 简介 SpringBoot&#xff0c;开箱即用&#xff0c;设置合理的默认值&#xff0c;同时也可以…

【MySQL】数据库之日志管理、备份与恢复

目录 一、MySQL的日志管理 二、MySQL的完全备份与恢复 物理冷备份&#xff08;完全备份&#xff09;与恢复 数据库上云迁移的方案&#xff1f; 逻辑热备份&#xff08;完全备份&#xff09;与恢复 三、MySQL的增量备份与恢复 1、手动增量备份 2、脚本增量备份 3、增量备…

归并排序之C++实现

描述 归并排序是一种经典的排序算法&#xff0c;采用分治的思想。 归并排序是一种基于分治思想的经典排序算法。它将待排序的数组不断地分成两个子数组&#xff0c;直到每个子数组只有一个元素。然后&#xff0c;对每个子数组进行归并排序&#xff0c;即不断地将两个有序的子数…

ros2中ros_gz_bridge/gazebo安装的注意事项

这个搞错了&#xff1a;这个是安装ros_gz_bridge的&#xff0c;不是安装gazebo的 AT:如果是安装的Harmonic&#xff0c;在安装ros_gz_bridge的时候要从源码编译 ros2完整版里面好像已经包含了gazebo的一个版本 包名应该就是叫ros-humble-ros-ign-gazebo 所以gazebo是作为一个普…

使用tesla gpu 加速大模型,ffmpeg,unity 和 UE等二三维应用

我们知道tesla gpu 没有显示器接口&#xff0c;那么在windows中怎么使用加速unity ue这种三维编辑器呢&#xff0c;答案就是改变注册表来加速相应的三维渲染程序. 1 tesla gpu p40 p100 加速 在windows中使用regedit 来改变 核显配置&#xff0c; 让p100 p40 等等显卡通过核显…

docker-compose部署kafka

docker-compose.yml配置 version: "3" services:kafka:image: bitnami/kafka:latestports:- 7050:7050environment:- KAFKA_ENABLE_KRAFTyes- KAFKA_CFG_PROCESS_ROLESbroker,controller- KAFKA_CFG_CONTROLLER_LISTENER_NAMESCONTROLLER- KAFKA_CFG_LISTENERSPLAIN…

国企和互联网怎么选?

2023年马上就要结束了&#xff0c;天气还是很冷&#xff0c;大家今年的总结做了吗&#xff1f; 正好这两天看到另外一个我关注的博主更新了一个自己的年终总结。其中有一些话令人印象深刻。 未来对我来说&#xff0c;毫无吸引力。原因很简单&#xff0c;当下已经足够令人清醒、…