考研算法第28天:冒泡排序和简单选择排序 【排序】

news2024/11/19 11:21:32

算法介绍

冒泡排序就不需要多说了,大一就会的东西,所以这里就不多言了。记录一下y总对他的分析就是了

简单选择排序

选择排序分析动图演示_就这烊了的博客-CSDN博客_选择排序动图

每次循环遍历后面的元素,然后将最小的放到最前面:举个例子

第一次 如上图 第一次发现最小的元素是2就将位于第一个位置的元素和2互换

第二次 如上图 第二次发现第二小的数是3就将位于第二个位置上的元素和3互换

。。。。。。

以此类推

算法题目

 

#include <iostream>

using namespace std;

const int N = 1000010;
int q[N];

void select_sort(int n){
    for(int i=0;i<n-1;i++){
        int maxidex = i;
        for(int j=i+1;j<n;j++){
            if(q[j]<q[maxidex]){
                maxidex = j;
            }
        }
        swap(q[i],q[maxidex]);
    }
    return;
}
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++)scanf("%d",&q[i]);
    select_sort(n);
    for(int i=0;i<n;i++)printf("%d ",q[i]);
    return 0;
}

算法复杂度分析

时间复杂度:

最优的:本来就有序的,所以就是O(N)

平均的:O(N^2)

最差的:O(N^2)

空间复杂度:O(1)

稳定性:

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

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

相关文章

EPM创建报表时,子节点有数据但是父节点无数据的解决方案

目录 一、环境二、问题描述与分析三、解决方案1、确认HANA MDX是否启用2、确认BPC前端的TIME维是否正常维护3. 在SPRO中设置模型参数4、使用SE38执行程序UJHANA_REFRESH_VIR_CUBE刷新模型 一、环境 产品版本BWSAP BW/4HANA 2021BPCSAP BPC 2021 Version for SAP BW/4 HANAEPM1…

电力数据安全治理实践思路探讨

01电力数据安全实践背景 数字经济的快速发展根本上源自数据的高质量治理和高价值转化&#xff0c;近年来&#xff0c;国家层面相继推出促进数据高质量治理的政策法规&#xff0c;围绕加强数据安全保障、提高数据质量等方面&#xff0c;明确了相关规定和要求。作为重要数据持有者…

TC8:TCP_UNACCEPTABLE_05-09

TCP_UNACCEPTABLE_05: [listen] unacceptable ACK -> RST [listen] 目的 在LISTEN状态下的TCP接收到携带一个不可接受的ACK号的段,发送RST并且保持在相同的状态 在LISTEN状态下的TCP,只能接收到SYN消息,不能有ACK标志位和ACK号,如果有,就是不可接受的 测试步骤 Teste…

C++IO流和类型处理(13)

IO流 IO流包括 标准IO流&#xff0c;字符串流&#xff0c;文件流 标准IO流 基础使用 #include <iostream> //包括istream和ostream cin >> ----- 标准输入 cout<< ----- 标准输出 clog<< ----- 带缓冲区的标准错误 cerr<< ----- 不带缓冲…

【C6】11111

文章目录 10.动静态库&#xff1a;.a&#xff0c;指定.so&#xff0c;LD_10.1 静态库&#xff1a;链接库的文件名是libpublic.a&#xff0c;链接库名是public&#xff0c;缺点使用的静态库发生更新改变&#xff0c;程序必须重新编译10.2 动态库&#xff1a;动态库发生改变&…

Selenium java自动化

文章目录 1. Selenium的安装2. 了解自动化和selenium2.1 什么是自动化以及为什么要做2.2为什么选择selenium作为我们的文本自动化工具2.3 环境部署2.4什么驱动&#xff0c;驱动的工作原理。2.5一个简单的自动化演示 3. 掌握selenium的基础语法3.1)元素的定位3.2) 元素的操作3.3…

Java解析String类的使用及String a = b + “c“面试题

1.概述 String:字符串&#xff0c;使用一对""引起来表示。 1.String声明为final的&#xff0c;不可被继承 2.String实现了Serializable接口&#xff1a;表示字符串是支持序列化的。 实现了Comparable接口&#xff1a;表示String可以比较大小 3.String内部定义了fina…

作用域问题

全局作用域 作用范围:在全局能够访问到的全局变量 代码实例: var num 10;function fn1() {console.log(num, "全局作用域");}fn1() 打印的结果: 函数作用域 作用范围:只在函数里面能够进行访问 代码实例: function fn1() {var num 10;}console.log(num); …

【Mysql】Explain详解与实践

演示所用user表在上一节有表结构和数据 【Mysql索引数据结构与算法】 脑图链接 一、EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 作用 通过EXPLAIN&#xff0…

Ubunt20.04 安装 Gramine

文章目录 参考资料Gramine安装运行helloworld升级kernel到5.15 参考资料 Gramine Quick start Gramine安装 Gramine安装要求&#xff1a; Linux 内核版本至少为 5.11&#xff08;启用 SGX 驱动程序&#xff09; 如果是5.4.0-150-generic版本&#xff0c;则可以参考《Install …

神秘的临时对象

下面的程序输出什么&#xff1f;为什么&#xff1f; 程序意图&#xff1a; 在 Test() 中以 0 作为参数调用 Test(int i) 将成员变量 mi 的初始值设置为 0 运行结果&#xff1a; 成员变量 mi 的值为随机值 构造函数是一个特殊的函数 是否可以直接调用&#xff1f; 是否可以…

濮阳社工百站千室暖万家 | “品味端午,传承文明”儿童活动

端午节是我国传统的民俗节日&#xff0c;也是中华民族的重要节日之一&#xff0c;为了让幼儿了解和感受这一节日的文化内涵&#xff0c;让孩子们在愉快的氛围中感受中华传统文化的魅力。2023年6月20日&#xff0c;范县城关镇社工站于范县未来双语幼儿园开展了“品味端午&#x…

哪些方法可以帮助你更有效地管理时间和提高工作效率?

如何更有效地管理时间和提高工作效率&#xff1f; 在现代社会&#xff0c;时间是最宝贵的资源之一。每个人都希望能够更好地管理时间&#xff0c;提高工作效率&#xff0c;从而更好地完成工作和生活。以下是一些方法&#xff0c;可以帮助您更有效地管理时间和提高工作效率。 …

H3C IRF基本内容概述

IRF IRF&#xff1a;Intelligent Resilient Framework&#xff0c;即智能弹性架构&#xff0c;是H3C专有的设备虚拟化技术&#xff0c;将实际物理设备虚拟化为逻辑设备供用户使用。 核心思想&#xff1a;将多台设备通过IRF物理端口连接在一起&#xff0c;进行必要的配置后&am…

Android 实现在图片上画标注框

之前是用glide加载然后在图片上画标注框是有问题的所以换了另外一种方式 思路&#xff1a;1.先把网络图片下载到本地之后画标注框 最后再压缩图片 及展示 上代码&#xff1a; 下载图片&#xff1a; public class NetWorkUtils {public static InputStream getImageInputStr…

LeetCode - #84 柱状图中最大的矩形(Top 100)

文章目录 前言1. 描述2. 示例3. 答案题解 1题解 2 关于我们 前言 本题为 LeetCode 前 100 高频题 本题由于没有合适答案为以往遗留问题&#xff0c;最近有时间将以往遗留问题一一完善。 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&am…

机器学习(三)线性回归原理

上述考虑的问题&#xff0c;我们会得到一个式子&#xff0c;即&#xff1a;Yθ1X1θ2X2。但该线性公式没办法拟合所有的数据点&#xff0c;如下图。 这里“θ0”作为偏置项&#xff0c;在二维平面里&#xff0c;即为截距。因此&#xff0c;上述公式“Yθ1X1θ2X2”即可修改为“…

深入源码解析 ReentrantLock、AQS:掌握 Java 并发编程关键技术

前言Lock重入锁synchronizedReentrantLock ReentrantReadWriteLock 读写锁ReentrantLock 实现原理AQSAQS 内部实现Node 内部结构Node 变更过程添加节点释放节点 ReentrantLock 类源码分析时序图锁竞争核心方法NonfairSync#lockAQS#acquireReentrantLock.NonfairSync#tryAcquire…

js的 Babel原理

简介 babel是一个JavaScript编译器,可以将ES2015 转换为向后兼容的JavaScript代码, Babel的原理是将JavaScript代码分为三个阶段: 解析, 转换和输出 1. 解析阶段 Babel首先会使用 Babylon 解析器将输出的 ES2015diamagnetic解析成抽象语法树(AST), 抽象语法树是 一种JSON形式…

端午节,不能只知道吃吃吃.....玩玩玩......

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;数据分析领域优质创作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;…