【C++】各种排序涉及到的选择小题合集(每日小细节009)

news2024/12/25 23:49:20

昨天更新完各种排序之后今天来检验一下是否真的全部掌握了呢?

今天的合集里面包括各种排序的综合选择题和一些解题技巧

花一两分钟看一下真的很有帮助哦

 

(最好能先认真复习一下各种排序)


 

1. 

冒泡排序就是相邻元素的两两比较所以依次写出来就可以了

第一趟:456321——453621——453261——453216

第二趟:453216——435216——432516——432156

第三趟:432156——342156——324156——321456 

所以321456就是最后的结果 

 


 选择排序:假设第一个数据是最值,然后后面的数据依次和他比较,如果有更大或者更小则替换

计算比较次数的方法和冒泡排序一样,第一次有n-1个元素要进行比较,也就是n-1次

往后依次减少,每次减少1,首项是n-1 尾项1,项数n-1的等差数列

总次数N=(n-1+1)*(n-1)/2

所以该题答案清晰明了,100*99/2=4950

降序应该建小堆,通过建堆算法向下调整

5                                5                          2                   2

11    7         —— 2           7     ——5            7 ——3        7

2 3  17              11  3       17         11  3       17      5   11     17

所以结果就是2 3 7 5 11 17

题目的意思就是把28当做key,右面先找小,然后左边找大交换

28 16 32 12 60 2 5 72 

28 16 5  12   60  2 32 72

2  16  5  12  28  60  32  72

 

 这道题就需要知道每一趟快排之后的结果特点

每一次快排都会至少让一个元素确定位置

发现只有C

有序的时候应该是2345679 和选项对比发现就只有9在应在的位置上  所以错误

 

快排的额外空间就是logn 因为他是类似于二叉树(逻辑结构)一样的结构往下建立栈帧,树高度是n 所以额外的空间就是logn


判断对错: 

 

 A就是最初创造出三数取中的初衷,就是为了规避快排对接近有序的序列的极大浪费情况

B如果元素完全相同那还需要更优化的方法,这个方法在各类排序的博客里已经写过了

各种排序里面的

 

 C没问题就是三数取中的定义

D肯定不对,就像我在上篇博客里面说过的,叫做快排也不是最快的,就算是还有三数取中解决不了的B的问题


选错的 

非递归我们是用栈完成的,但是栈和队列根本就没有本质区别,甚至之前我们还一起做了栈和队列相互转化的oj,所以AB没大问题 

C非递归在时间复杂度上并没有很大的改善,但是在空间复杂度上就节省了特别多开辟栈帧的开销,退一步,如果真的非递归又节约时间还节约空间,那只学他不就行了

D根据C的分析,对的


还有个汇总

有很多考最好最坏,时间复杂度的题目在这里就不列举了

我们最直接用一张表说话

 

已经有序的情况下花费最多的是快排 


 

这个题目是一种新的排序方法(不在那片汇总的博客里)

这个是快排的二分排序思想

 


今天的内容就到这里,感谢 

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

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

相关文章

Java项目:Springboot体育器材管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 体育器材管理系统主要包含以下功能: 登录注册; 体育器材管理:显示器材表、显示价目表、显示供应商表&#x…

通达信逐笔接口怎么查询下单明细?

通达信逐笔接口一般会根据实盘交易系统的模式来开发,然后股票量化交易接口端也能很快的获取用户数据,也就是你的账户下单的数据信息,在市场交易期间能实时与多家证券公司对接,实现委托买入卖出操作。那么,像这么方便的…

IO流Properties配置文件

目录 输入流和输出流 File文件增删 常用IO流类及其分类 FileInputStream/FileOutputStream ObjectInputStream/ObjectOutputStream BufferedInputStream/BufferedOutputStream FileReader/FileWriter BufferedReader/BufferedWriter InputStreamReader/InputStreamWri…

为啥devc++程序运行正确返回不为0?而返回了一个特别大的数,详解。

例如运行以下程序: #include #include typedef char ElemType; typedef struct BiTNode{ char data; struct BiTNode *lchild; struct BiTNode *rchild; int DescNum;}BiTNode ,*BiTree; void CreateBiTree(BiTree *T) { char ch; scanf("%c",&ch); if(ch ){…

时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络)

时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络) 目录时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络)预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现IWOA-LSTM和…

使用React做一个音乐播放器

目录介绍先决条件和设置环境依赖关系播放器.js进口播放和暂停音频使用音频的当前时间和持续时间添加音频时间线输出附加的功能结论介绍 任何正在学习 React 并想使用 React 构建项目的人。有各种博客和文章可以为开发人员指导此类项目。我确实浏览过这些文章,但其中…

Java集合框架【三Map接口、Iterator送代器、Collections工具类】

文章目录双例模式一 Map接口简介1.1 常用方法1.2 演示二 HashMap的存储结构简介三 TreeMap容器类3.1 TreeMap的比较规则3.2 元素自身实现比较规则3.3 通过比较器实现比较规则四 Iterator迭代器4.1 Iterator送代器接口介绍4.2 栗子五 Collections工具类5.1 Collections工具类简介…

关于node代码如何丝滑执行多条命令行这件事

最近写脚本比较多,然后经常写命令行相关的代码,记录一下以备万一。 首先,node使用命令行依赖于child_process,这个是node原生支持的,我用的最多就是exec。 按顺序执行多个命令 因为写脚本需要执行多个语句,所以写了…

[Python图像识别] 五十一.水书图像识别之利用数据增强扩充图像数据集

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 上一篇文章…

五、传输层(三)TCP

目录 3.0 TCP特点补充 3.1 TCP报文段首部格式 3.2 TCP连接管理 3.2.1 三报文握手 3.2.2 四报文挥手 3.3 TCP的流量控制和可靠传输 3.4 TCP拥塞控制 3.4.1 接收窗口、拥塞窗口、发送窗口关系 3.4.2 慢开始和拥塞避免 3.4.3 快重传和快恢复 3.0 TCP特点补…

Java项目:springboot超市订单管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该超市订单管理毕业设计基于jdk8版本开发,在部署时需要使用jdk8以上的版本。使用了目前流行的框架组合springbootmybatis的框架技术…

DispatcherServlet初始化过程源码分析 | SpringMVC源码分析

一、继承或实现关系 public class DispatcherServlet extends FrameworkServlet public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware public abstract class HttpServletBean extends HttpServlet implements Environment…

聊聊Go语言并发之道

写在前面 2007年,Go语言诞生于Google公司,2009年开源,2012年推出1.0版本,曾两次获得TIOBE年度语言。2012年起,全球大量的开源项目开始使用Go语言开发,目前Go语言已成为云计算领域事实上的标准语言&#xff…

深度学习常见概念字典(感知机、全连接层、激活函数、损失函数、反向传播、过拟合等)

这一章的所有内容均是为了进入深度学习具体的某某网络而准备的,简单但是非常有必要。 1. 神经网络(neural networks)的基本组成 1.1 神经元(neuron) 神经元(neuron) 是神经网络(n…

slf4j常用配置文件读取

slf4j常用配置文件读取 log4j2读取配置文件 日志现在一般都是使用slf4j作为接口、底层实现一般是用log4j2或者logback。 我们先看下log4j2是如何读取配置文件的。 implementation org.apache.logging.log4j:log4j-slf4j-impl:2.19.0如果使用gradle的话。上面的代码就会导入sl…

VS coda C++、python运行与Dbug配置

首先新建终端 一次性使用C方法 检查C编译器是否存在 which g可见位置存在于:/usr/bin/g 一次性命令格式: 使用json配置文件 运行C方法(推荐): 根据你查找的g的位置来决定 使用配置好的tasks.json(C的…

QT入门-UI-信号槽

目录 一、QWidget类(重点) 二、子组件(掌握) 三、样式表(熟悉) 一、什么是信号槽? 二、信号槽的连接方式 2.1 自带信号→自带槽 2.2 自带信号→自定义槽 2.3 自定义信号 三、传参方式 3.1 成员变…

C#语言实例源码系列-伪装文件

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

Redis分布式锁存在的问题

假设有这样一个场景,在一个购票软件上买一张票,但是此时剩余票数只有一张或几张,这个时候有几十个人都在同时使用这个软件购票。在不考虑任何影响下,正常的逻辑是首先判断当前是否还有剩余的票,如果有,那么…

Spring5.3.0源码下载

目录源码下载环境配置import into idea修改配置gradle-wapper.propertiesbuild.gradleSetting Gradlerefresh Gradle写一个小dome源码研究心得源码下载 Spring5.3.0 Download Address 我们只需要下载zip就行了, 如果忘记了这个地址,可以在Spring Offici…