当前位置: 首页 > news >正文

选择排序——直接选择排序

直接选择排序:(以重复选择的思想为基础进行排序)

1、简述

顾名思义就是选出一个数,再去抉择放哪里去。

设记录R1,R2…,Rn,对i=1,2,…,n-1,重复下列工作:

(1)在Ri,…,Rn中选最小(或最大)关键字记录Rj;

(2)将Rj与第i个记录交换位置,即将选到的比i小的记录换到第i号位置上。

2、复杂度

时间复杂度:C_{time} = \sum_{i-1}^{n}(n-i)= (n^{2}-1)/2 ≈O(n²)

空间复杂度:O(1)

3、稳定性:不稳定排序

4、例子

#include <iostream>
using namespace std;
// 选择排序
int main() {int arr[8] = {45, 38, 66, 90, 88, 10, 25, 45};int arrCount = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < arrCount-1; i++) {// 从第一个开始,找出最小值的下标int minIndex = i, tmp = arr[i];for (int j = i + 1; j < arrCount; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;  // 找到最小下标,并记录}}// 交换下标位置arr[i] = arr[minIndex];arr[minIndex] = tmp;cout<<i+1<<"次排序后:";for (int i = 0;i < arrCount;i++) {cout << arr[i] << " ";}cout<<endl;}cout<<"最后结果:";for (int i = 0;i < arrCount;i++) {cout << arr[i] << " ";}return 0;
}

输出结果:

1次排序后:10 38 66 90 88 45 25 45 
2次排序后:10 25 66 90 88 45 38 45 
3次排序后:10 25 38 90 88 45 66 45 
4次排序后:10 25 38 45 88 90 66 45 
5次排序后:10 25 38 45 45 90 66 88 
6次排序后:10 25 38 45 45 66 90 88 
7次排序后:10 25 38 45 45 66 88 90 
最后结果:10 25 38 45 45 66 88 90

生命不息,学习不止,若有不正确的地方,欢迎指正。

相关文章:

选择排序——直接选择排序

直接选择排序&#xff1a;&#xff08;以重复选择的思想为基础进行排序&#xff09; 1、简述 顾名思义就是选出一个数&#xff0c;再去抉择放哪里去。 设记录R1&#xff0c;R2…&#xff0c;Rn&#xff0c;对i1&#xff0c;2&#xff0c;…&#xff0c;n-1&#xff0c;重复下…...

【C++基础】观察者模式(“发布-订阅”模式)

本文参考&#xff1a;观察者模式 - 摩根斯 | 爱编程的大丙 观察者模式允许我们定义一种订阅机制&#xff0c;可在对象事件发生时通知所有的观察者对象&#xff0c;使它们能够自动更新。观察者模式还有另外一个名字叫做“发布-订阅”模式。 发布者&#xff1a; 添加订阅者&…...

从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!

经常会有小伙伴询问&#xff1a;“测试工程师有哪些必须要掌握的技能&#xff1f;”这是一个非常大的课题&#xff0c;因为每个人从事的行业不同、岗位不同&#xff0c;需要掌握的技能自然也不一样。 今天小编就从不同岗位、不同行业两个大方面&#xff0c;来讲讲软件测试工程师…...

【nerfStudio】5-nerfStudio导出3D Mesh模型

几何图形的导出 在这里我们将介绍如何从nerfstudio中导出点云和网格。您将使用的主要命令是ns-export。我们将点云导出为.ply文件,纹理网格导出为.obj文件。 导出网格 1. TSDF融合 TSDF(截断有符号距离函数)融合是一种使用深度图像提取表面网格的算法。此方法适用于所有…...

重要公告|投票委托已经上线,应该如何选择社区代表?

社区代表是Token持有者委托投票权的个人或团体&#xff0c;可以代表Token持有者在Moonbeam治理中投票。委托是可选的&#xff0c;允许代表在治理过程中代表更大比例的Token和Token持有者。相比社区代表&#xff0c;不愿投票的Token持有者可以将投票权委托给社区代表&#xff0c…...

【操作系统】聊聊进程、线程、协程

进程内部有那些数据 为什么创建进程的成本高 进程和线程 进程是资源分配的基本单位&#xff0c;而线程是程序执行的基本单位&#xff0c;一个是从资源分配的角度看&#xff0c;另一个是执行角度。 那么进程和程序的区别是什么&#xff1f; 程序&#xff0c;一段代码&#xff…...

springboot 下 activiti 7会签配置与实现

流程图配置 会签实现须在 userTask 节点下的 multi instance 中配置 collection 及 completion condition; collection 会签人员列表&#xff1b;element variable 当前会签变量名称&#xff0c;类似循环中的 item;completion condition: 完成条件。 ${taskExecutionServiceIm…...

RK3399平台开发系列讲解(内核调试篇)spidev_test工具使用

🚀返回专栏总目录 文章目录 一、环境二、执行测试三、回环测试四、字节发送测试五、32位数据发送测试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 在 Linux 系统上,“spidev_test” 是一个用于测试和配置 SPI(Serial Peripheral Interface)设备的命令行工具。…...

点云从入门到精通技术详解100篇-自适应点云局部邻域特征的特征提取与配准(续)

目录 3.4 深度相机误差建模 3.5 实验结果及分析 3.5.1 TOF 相机平面畸变校正 3.5.2 TOF 相机深度误差校正...

VBA技术资料MF52:VBA_在Excel中突出显示前 10 个值

【分享成果&#xff0c;随喜正能量】一言之善&#xff0c;重于千金。善良不分大小&#xff0c;有时候你以为的一句话&#xff0c;小小的举手之劳&#xff0c;也可能就是别人的救赎&#xff01;不要吝啬你的善良&#xff0c;因为你永远不知道那小小的善良能给多少人带来光明。。…...

leetcode做题笔记134. 加油站

在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas 和 cost &…...

Allegro166版本如何在颜色管理器中实时显示层面操作指导

Allegro166版本如何在颜色管理器中实时显示层面操作指导 在用Allegro166进行PCB设计的时候,需要在颜色管理器中频繁的开关层面。但是166不像172一样在颜色管理器中可以实时的开关层面,如下图 需要打开Board Geometry/Soldermask_top层,首先需要勾选这个层面,再点击Apply即…...

纷享销客入选中国信通院《高质量数字化转型产品及服务全景图》

近期&#xff0c;在中国信息通信研究院主办的“2023数字生态发展大会”暨中国信通院“铸基计划”年中上&#xff0c;重磅发布了《高质量数字化转型产品及服务全景图&#xff08;2023&#xff09;》&#xff0c;纷享销客凭借先进的技术能力和十余年客户业务场景应用理解&#xf…...

C高级 DAY4

一、分支语句 case ...in语句 shell中的switch语句 case $变量名 in常量1)语句;; ------->类似于C中break的作用&#xff0c;;;除了最后一条分之外&#xff0c;都不能省略常量2)语句;; 常量n)语句;;*) ------->类似于C中default&#xff0c;但…...

C高级day4

作业 实现一个对数组求和的函数&#xff0c;数组通过实参传递给函数 写一个函数&#xff0c;输出当前用户的uid和gid&#xff0c;并使用变量接收结果 思维导图...

Java8-17 --- idea2022

目录 一、idea官网 二、使用idea编写hello world 三、查看工程中的JDK配置信息 四、详细设置 4.1、显示工具栏 4.2、默认启动项目配置 4.3、取消自动更新 4.4、选择整体主体与背景图 4.5、设置编辑器主题样式 4.5.1、编辑器主题 4.5.2、字体大小 4.5.3、修改注…...

Mybatis---增删改查

目录 一、添加用户 &#xff08;1&#xff09;持久层接口方法 &#xff08;2&#xff09;映射文件 &#xff08;3&#xff09;测试方法 二、修改用户 &#xff08;1&#xff09;持久层接口方法 &#xff08;2&#xff09;映射文件 &#xff08;3&#xff09;测试方法 …...

开机性能-如何抓取开机systrace

一、理论 1.背景 抓取开机 trace 需要使用 userdebug 版本&#xff0c;而我们测试开机性能问题时都要求使用 user 版本&#xff0c;否则会有性能损耗问题。因此想要在抓取开机性能trace 时&#xff0c;需要在 user 版本上打开 atrace 功能之后才能抓取 trace&#xff0c;默认 …...

VBA技术资料MF54:VBA_EXCEL实时获取鼠标位置

【分享成果&#xff0c;随喜正能量】若人散乱心&#xff0c;乃至以一花&#xff0c;供养于画像&#xff0c;渐见无数佛。所以发一幅释迦牟尼佛像&#xff0c;与同修善友一起每日在微博上供养&#xff0c;只要有供养之心&#xff0c;便可积累功德。以此回向&#xff0c;愿求者如…...

模电课程设计

主要内容跟本科实验关系很大&#xff0c;可以用来借鉴。 包含文件有&#xff1a;实验报告、Multisim仿真文件&#xff0c;资料很全&#xff0c;有问题可以私信 目录 1、模电课设&#xff1a;用Multisim简单了解二极管 2、模电课设&#xff1a;用Multisim简析三极管与场效应…...

数据投资回报率金字塔:衡量和最大化数据团队价值的方法

原文&#xff1a;towardsdatascience.com/the-data-roi-pyramid-a-method-for-measuring-maximizing-your-data-team-cab470b98cf6?sourcecollection_archive---------4-----------------------#2024-02-02 难以清晰表达你数据团队的价值&#xff1f;了解如何使用数据投资回报…...

AutoGen框架解析:多智能体协作如何重塑AI应用开发范式

1. 项目概述&#xff1a;当AI学会“开会”&#xff0c;AutoGen如何重塑智能体协作范式 如果你和我一样&#xff0c;在过去几年里深度参与过AI应用开发&#xff0c;尤其是基于大语言模型的智能体构建&#xff0c;那你一定体会过那种“保姆式”的疲惫感。为了让一个智能体完成稍微…...

城市复杂环境下低成本单目视觉惯性轮式里程计融合方案

1. 项目概述&#xff1a;当视觉与惯性导航在城市中“失明”在机器人、自动驾驶乃至无人机领域&#xff0c;定位与建图&#xff08;SLAM&#xff09;是核心的“眼睛”和“大脑”。对于成本敏感、体积受限的移动平台&#xff08;如服务机器人、小型物流车&#xff09;&#xff0c…...

多项目并行开发时借助 Taotoken 统一管理各模型 API 密钥的实践

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 多项目并行开发时借助 Taotoken 统一管理各模型 API 密钥的实践 当你同时推进多个 AI 应用项目时&#xff0c;可能会遇到一个典型的…...

艾尔登法环帧率解锁神器:告别60帧限制的终极指南

艾尔登法环帧率解锁神器&#xff1a;告别60帧限制的终极指南 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/EldenRin…...

【详细版教程】飞书聊天控制电脑 OpenClaw 配置实操教程(含安装包)

OpenClaw 飞书机器人配置教程&#xff5c;一键对接飞书 聊天下达 AI 指令 适配版本&#xff1a;OpenClaw v2.7.1&#xff08;小龙虾&#xff09;前置要求&#xff1a;已部署 OpenClaw Windows 端&#xff08;Win10/Win11 均可&#xff09;&#xff0c;未部署可先下载一键部署包…...

GitToolBox插件安装失败的5个常见问题与解决方案

GitToolBox插件安装失败的5个常见问题与解决方案 【免费下载链接】GitToolBox GitToolBox IntelliJ plugin 项目地址: https://gitcode.com/gh_mirrors/gi/GitToolBox GitToolBox是JetBrains IDE生态中备受开发者喜爱的Git增强插件&#xff0c;它通过状态显示、自动拉取…...

如何从安卓手机 / 平板打印文件?3 种简单方法

随着安卓技术的发展&#xff0c;智能手机能实现诸多功能&#xff0c;但直接打印是设备本身暂不支持的操作&#xff0c;这是因为安卓系统没有原生打印功能。那么该如何用安卓手机打印&#xff1f;本文整理 3 种高效简单的方法供你参考。方法 1&#xff1a;使用 iReaShare Androi…...

MedComm(IF=10.7)中大孙逸仙纪念医院姚和瑞等团队:多模态数据融合AI模型揭示乳腺癌肿瘤微环境免疫分型异质性与增强的风险分层

01文献学习今天分享的文献是由中大孙逸仙纪念医院姚和瑞等团队于2024年12月在《MedComm》&#xff08;中科院1区top&#xff0c;IF10.7&#xff09;上发表的研究“Multimodal data fusion AI model uncovers tumor microenvironment immunotyping heterogeneity and enhanced r…...

63岁刘明辉带领中国燃气再转型,AI时代挑战传统思维!

中国燃气转型引关注去年&#xff0c;中国燃气董事会主席、总裁刘明辉要求团队加快生物质能源、厨房局部改造等新业务&#xff0c;这让很多员工感到疑惑。这家成立25年、年销售收入超1500亿元、在全国600多个城市开展燃气业务、服务近6000万户家庭的行业龙头&#xff0c;为何还要…...