【算法】排序
排序算法在信息学非常常用。Hello!大家好,我是@学霸小羊,今天讲几个排序算法。
1.“打擂台”排序
思路:a[ i ]和a[ j ]打擂台(i<j)。
这个方法简单易懂,只需要看看需不需要交换。按从大到小排,如果a[ i ]<a[ j ],那就要换;从小到大排,如果a[ i ]>a[ j ],那就要换。
#include<bits/stdc++.h>
using namespace std;
int a[1001],n;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}//从大到小排序 for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i<j){if(a[i]<a[j]) swap(a[i],a[j]);}else if(j<i){if(a[j]<a[i]) swap(a[i],a[j]);}else continue;}}for(int i=1;i<=n;i++){cout<<a[i]<<" ";}return 0;
}
你以为这就完了吗?才!怪!
上面代码的时间复杂度是O(n^2)!算是比较大的了。
话说其实可以简化一下,将中间的双重循环变一下。
for(int i=1;i<n;i++){for(int j=i+1;j<=n;j++){if(a[i]<a[j]) swap(a[i],a[j]);}
}
这样接可以稍微缩短一下时间,时间复杂度变为(n+(n-1)+(n-1)+···+1)。
2.冒泡排序
这儿排序可以用一句话形容:将最大值冒上去。

代码:
#include<bits/stdc++.h>
using namespace std;
int a[1001],n;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}//从小到大排序 for(int i=n;i>1;i--){for(int j=2;j<=n;j++){if(a[j-1]>a[j]) swap(a[j],a[j-1]);}}for(int i=1;i<=n;i++){cout<<a[i]<<" ";}return 0;
}
3.插入排序
将变量取出,然后找到一个合适的位置插进去。

就是一个字:找!
代码:
#include<bits/stdc++.h>
using namespace std;
int a[1001],n;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}//从小到大排序 int j;int current;for(int i=0; i<n; i++){j = i ;current = a[i];while(j>=0 && a[j-1]> current){a[j] = a[j-1];j--;}a[j] = current;}for(int i=1;i<=n;i++){cout<<a[i]<<" ";}return 0;
}
4.sort()排序
这是一个c++标准函数。
sort(函数名+开始下标,函数名+结束下标,其他);
话都不多说,上代码!
#include<bits/stdc++.h>
using namespace std;
int a[1001],n;
int main()
{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;
}
好啦!今天就讲到这,小伙伴们,拜拜!
相关文章:
【算法】排序
排序算法在信息学非常常用。Hello!大家好,我是学霸小羊,今天讲几个排序算法。 1.“打擂台”排序 思路:a[ i ]和a[ j ]打擂台(i<j)。 这个方法简单易懂,只需要看看需不需要交换。按从大到小…...
前端开发之xlsx的使用和实例,并导出多个sheet
前端开发之xlsx的使用和实例 前言效果图1、安装2、在页面中引用3、封装工具类(excel.js)4、在vue中使用 前言 在实现业务功能中导出是必不可少的功能,接下来为大家演示在导出xlsx的时候的操作 效果图 1、安装 npm install xlsx -S npm inst…...
创建数据库数据插入、更新与删除
创建数据库和创建表 一、实验目的 (1)熟悉和掌握数据库的创建和连接方法; (2)熟悉和掌握数据库表的建立、修改和删除; (3)加深对表的实体完整性、参照完整性和用户自定义完整性的…...
【CTF Web】CTFShow web3 Writeup(SQL注入+PHP+UNION注入)
web3 1 管理员被狠狠的教育了,所以决定好好修复一番。这次没问题了。 解法 注意到: <!-- flag in id 1000 -->但是拦截很多种字符。 if(preg_match("/or|\-|\\|\*|\<|\>|\!|x|hex|\/i",$id)){die("id error"); }使用…...
常见API(JDK7时间、JDK8时间、包装类、综合练习)
一、JDK7时间——Date 1、事件相关知识点 2、Date时间类 Data类是一个JDK写好的Javabean类,用来描述时间,精确到毫秒。 利用空参构造创建的对象,默认表示系统当前时间。 利用有参构造创建的对象,表示指定的时间。 练习——时间计…...
Docker数据卷(volume)
数据卷 数据卷是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。(容器内目录与宿主机目录对应的桥梁,修改宿主机对应的目录,docker会映射到容器内部,相当于修改了容器内的,反之也一样)数…...
30.哀家要长脑子了!---栈与队列
1.388. 文件的最长绝对路径 - 力扣(LeetCode) 其实看懂了就还好 用一个栈来保存所遍历过最大的文件的绝对路径的长度,栈顶元素是文件的长度,栈中元素的个数是该文件目录的深度,非栈顶元素就是当时目录的长度 检查此…...
多重继承引起的二义性问题和虚基类
多重继承容易引起的问题就是因为继承的成员同名而产生的二义性问题。 例:类A和类B中都有成员函数display和数据成员a,类C是类A和类B的直接派生类 情况一: class A {public:int a;void display(); }; class B {public:int a;void display; }; class C:…...
ciscn
ciscn Crypto部分复现 古典密码 先是埃特巴什密码(这个需要进行多次测试),然后base64,再栅栏即可 答案:flag{b2bb0873-8cae-4977-a6de-0e298f0744c3} _hash 题目: #!/usr/bin/python2 # Python 2.7 (6…...
智能的PHP开发工具PhpStorm v2024.1全新发布——支持PHPUnit 11.0
PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能。 立即获取PhpS…...
Vue2+Element 封装评论+表情功能
有需要的小伙伴直接拿代码即可,不需要下载依赖,目前是初始版本,后期会进行代码的优化。 评论组件如下: 创建 comment.vue 文件。 表情组件 VueEmoji.vue 在评论组件中使用。 <template><div class"comment"…...
【k8s】存储 pvc 参数列表
相关文章: 【K8s】初识PV和PVC 【k8s】存储 pv 参数列表 【k8s】存储 pvc 参数列表 1. pv概述 2. 参数列表 [rootpaas-controller-3:/home/ubuntu]$ kubectl explain pvc.spec KIND: PersistentVolumeClaim VERSION: v1RESOURCE: spec <Object>DESCRI…...
数据集007:垃圾分类数据集(含数据集下载链接)
数据集简介 本数据拥有 训练集:43685张; 验证集:5363张; 测试集:5363张; 总类别数:158类。 部分代码: 定义数据集 class MyDataset(Dataset):def __init__(self, modetrain, …...
Spring常用注解(超全面)
官网:核心技术SPRINGDOC.CN 提供 Spring 官方文档的翻译服务,可以方便您快速阅读中文版官方文档。https://springdoc.cn/spring/core.html#beans-standard-annotations 1,包扫描组件标注注解 Component:泛指各种组件 Controller、…...
HQL面试题练习 —— 合并活动日期
目录 1 题目2 建表语句3 题解 1 题目 已知有表记录了每个大厅的活动开始日期和结束日期,每个大厅可以有多个活动。请编写一个SQL查询合并在同一个大厅举行的所有重叠的活动,如果两个活动至少有一天相同,那他们就是重叠的,请将他们…...
基于SVm和随机森林算法模型的中国黄金价格预测分析与研究
摘要 本研究基于回归模型,运用支持向量机(SVM)、决策树和随机森林算法,对中国黄金价格进行预测分析。通过历史黄金价格数据的分析和特征工程,建立了相应的预测模型,并利用SVM、决策树和随机森林算法进行训…...
Host头攻击-使用反向代理服务器或负载均衡器来传递路由信息
反向代理服务器的作用 安全性:反向代理服务器位于Web服务器之前,可以隐藏实际Web服务器的身份和地址,从而增加安全性。它还可以对客户端请求进行过滤和检查,以防止潜在的攻击。负载均衡:反向代理服务器可以将客户端请…...
AWS容器之Amazon ECS
Amazon Elastic Container Service(Amazon ECS)是亚马逊提供的一种完全托管的容器编排服务,用于在云中运行、扩展和管理Docker容器化的应用程序。可以理解为Docker在云中对应的服务就是ECS。...
win10/win11 优先调用大核的电源计划性能设置
前言 大小核,即Intel 12代开始的P-core(性能核,一般叫大核)和E-core(能效核,一般叫小核)异核架构。说下个人理解,就是英特尔为了增加cpu性能,但是又因为架构和功耗的限制…...
模型实战(20)之 yolov8分类模型训练自己的数据集
yolov8分类模型训练自己的数据集 yolov8,一个实时快速的端到端的集检测、分割、分类、姿态识别于一体的视觉算法库/框架本文将给出yolov8 分类模型的数据集制作格式及训练流程 1. 环境搭建 关于虚拟环境的搭建真的是老生常谈了,给出一个简单的搭建流程吧#新建虚拟环境 conda …...
WuliArt Qwen-Image Turbo效果对比:FP16黑图频发 vs BF16稳定出图实测
WuliArt Qwen-Image Turbo效果对比:FP16黑图频发 vs BF16稳定出图实测 1. 引言:从“黑图”困扰到稳定出图 如果你用过一些本地部署的文生图模型,可能遇到过这样的糟心事儿:满怀期待地输入一段描述,点击生成ÿ…...
OpenClaw+千问3.5-27B学习助手:自动整理笔记与生成思维导图
OpenClaw千问3.5-27B学习助手:自动整理笔记与生成思维导图 1. 为什么需要AI学习助手? 去年准备技术认证考试时,我发现自己陷入了"资料沼泽"——收集了87个PDF、42小时视频课程和无数网页书签,但真正消化吸收的内容不到…...
腾讯云DNS解析迁移到Cloudflare的完整避坑指南(附小黄云加速设置)
腾讯云DNS解析迁移到Cloudflare的完整避坑指南(附小黄云加速设置) 当网站遭遇流量攻击或需要全球加速时,许多站长会将DNS解析从国内服务商迁移至Cloudflare。这个决策背后不仅是免费防护的吸引力,更涉及解析稳定性、安全功能与性能…...
(开头直接进入主题,无废话)
(ISAR RD成像)feko仿真单站RCS,使用其导出的.ffe数据,基于MATLAB进行RD算法的ISAR成像 可以直接运行出结果,适合初学者参考和学习 从feko仿真到ISAR成像,全流程数据和代码都给你 我自己也曾是初学者&#x…...
AsyncESP32_Ethernet_Manager:工业级ESP32以太网配置管理库
1. AsyncESP32_Ethernet_Manager 库深度解析:面向工业嵌入式场景的以太网配置管理方案 1.1 项目定位与工程价值 AsyncESP32_Ethernet_Manager 是一个专为 ESP32 系列微控制器(包括 ESP32-S2、ESP32-S3 和 ESP32-C3)设计的、基于 LwIP 协议栈…...
基于深度学习的田间杂草检测系统(YOLOv12/v11/v8/v5模型)(源码+lw+部署文档+讲解等)
摘要田间杂草的生长不仅会影响作物的产量和质量,还会对农田管理造成巨大挑战。传统的杂草检测方法多依赖人工观察,效率低下且受主观因素影响。为了提高田间杂草的检测效率与准确性,本文提出了一种基于深度学习的田间杂草检测系统,…...
DAB-DETR目标检测环境配置、DAB-DETR目标检测代跑训练、DAB-DETR目标检测改进创新DAB-DETR目标检测配置:Windows、Ubuntu、Centos、Macos等系统环境
DAB-DETR目标检测环境配置、 DAB-DETR目标检测代跑训练、 DAB-DETR目标检测改进创新 DAB-DETR目标检测配置:Windows、Ubuntu、Centos、Macos等系统环境,如果电脑拥有显卡,可配置GPU版本环境。 DAB-DETR目标检测代跑训练、:可支持训…...
解锁论文写作新境界:书匠策AI——学术探索的智能导航灯
在学术的浩瀚海洋中,每一位研究者、学生乃至教育博主,都如同勇敢的航海家,驾驶着知识的船只,追寻着真理的彼岸。然而,论文写作这一航程中的关键环节,往往让许多人感到迷茫与挑战重重。今天,就让…...
FreeRTOS 工程化要点:任务划分、优先级设计与 CPU 占用率监控
大家好,我是杂烩君。 今天我们来简单分享:FreeRTOS任务怎么拆、优先级怎么配、CPU 占用怎么看。1. 任务划分原则 1.1 单一职责:一个任务只干一件事 把"串口接收 数据解析 指令执行 结果反馈"全塞一个任务,解析环节一…...
【MATLAB自编程求解二维质量守恒方程+动量守恒NS方程算例】 理论上通过代码极难求解NS方程 1
【MATLAB自编程求解二维质量守恒方程+动量守恒NS方程算例】理论上通过代码极难求解NS方程1.编写了求解NS方程的计算方法2.可通过求解NS方程计算x和y方向的速度场,以及二维整体的压力场3.可自行设置二维几何参数,进口速度等边界条件二维NS方程…...

