排序相关算法--3.选择排序

之前涉及的堆排序就是选择排序的一种,先进行选择。

基本选择排序:


最简单,也是最没用的排序算法,时间复杂度高并且还是不稳定的排序方法,项目中很少会用。

过程:
在一个长度为 N 的无序数组中,第一次遍历 n-1 个数找到最小的和第一个数交换。
第二次从下一个数开始遍历 n-2个数,找到最小的数和第二个数交换。
重复以上操作直到第 n-1 次遍历最小的数和第 n-1 个数交换,排序完成。

特点:如果挨个进行选择那么效率太慢。

算法优化:

默认开始的数是最大值最小值。比他大就更新,比他小也更新最大最小就可以了

注意一下这种情况:

当maxi和begin重合的时候交换之后maxi就被换走了,所以就需要使mini赋给maxi.

void SelectSort(int* a, int n)
{//数组需要使用地址形式。。假设一共有n个数据int begin = 0, end = n - 1;while (begin < end)//使用的是下标形式{int mini = begin, maxi = begin;for (int i = begin + 1; i <= end; ++i)//从第2个开始{if (a[i] > a[maxi]){maxi = i;}if (a[i] < a[maxi]){mini = i;} }Swap(&a[begin], &a[mini]);
if(maxi=begin)
maxi=mini;Swap(&a[end], &a[mini]);begin++;end--;}
}

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

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

相关文章

智慧公厕系统助力城市卫生管理

在当今快速发展的城市环境中&#xff0c;城市卫生管理面临着诸多挑战。其中&#xff0c;公共厕所的管理一直是一个重要但又常被忽视的环节。然而&#xff0c;随着科技的不断进步&#xff0c;智慧公厕系统的出现为城市卫生管理带来了全新的解决方案&#xff0c;成为提升城市品质…

OrangePi AIpro 浅上手

OrangePi AIpro 浅上手 OrangePi AIpro 介绍开发版介绍硬件规格顶层视图和底层视图接口详情图 玩转 OrangePi AIPro烧录镜像串口调试连接 WiFissh 连接配置下载源 使用感受优点&#xff1a;缺点或需注意的点&#xff1a; OrangePi AIpro 介绍 开发版介绍 OrangePi AIpro是香橙…

【大语言模型】私有化搭建-企业知识库-知识问答系统

下面是我关于大语言模型学习的一点记录 目录 人工智能学习路线 MaxKB 系统(基于大语言模型的知识问答系统) 部署开源大语言模型LLM 1.CPU模式(没有好的GPU&#xff0c;算力和效果较差) 2.GPU模式&#xff08;需要有NVIDIA显卡支持&#xff09; Ollama网络配置 Ollama前…

【问卷系统】TDucKX更新速览

TDuck是一款在线表单问卷收集工具&#xff0c;开源地址&#xff1a;https://gitee.com/TDuckApp一款免费的表单问卷系统&#xff1b;可快速创建问卷或业务表单&#xff0c;采用无代码理念支持开发自定义组件。采用SpringBootVueElementUI技术栈&#xff0c;功能强大界面清新&am…

Catena-x标准解读:CX-0007 Minimal Data Provider Service Offering v1.0.2 最小数据提供商服务产品

为了更好地理解&#xff0c;最小数据提供者服务也将被称为“上传工具”。 对于数据供应工具来说&#xff0c;数据主权的概念尤为重要。数据主权是Catena-X网络的核心价值观之一。每个参与者都应该尽可能多地控制自己的数据。这包括 他总是确切地知道他在与谁交换数据。参与者…

【GameFramework扩展应用】6-4、GameFramework框架增加AB包加解密功能

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q764424567/article/details/1…

软件测试面试200问(全)

1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&#xff0c;可以实现跨平台&#xff0c;客户端零维护&#xff0c;维护成本低&#xff0c;但是个性化能力低&#xff0c;响应速度较慢 C/S响应速度快&#xff0c;安全性强&#xff0c;一般应用于局域网中&#xff0…

【matlab】智能优化算法优化BP神经网络

目录 引言 一、BP神经网络简介 二、智能优化算法概述 三、智能优化算法优化BP神经网络的方法 四、蜣螂优化算法案例 1、算法来源 2、算法描述 3、算法性能 结果仿真 代码实现 引言 智能优化算法优化BP神经网络是一个重要的研究领域&#xff0c;旨在通过智能算法提高…

变量筛选—特征包含信息量

在变量筛选中,通过衡量特征所包含信息量大小,决定是否删除特征,常用的指标有单一值占比、缺失值占比和方差值大小。单一值或缺失值占比越高,表示特征包含信息量越少,不同公司设置不同阈值,一般单一值、缺失值占比高于95%,建议删除。方差值越小,代表特征包含信息量越小。…

入职前回顾一下git-01

git安装 Linux上安装git 在linux上建议用二进制的方式来安装git&#xff0c;可以使用发行版包含的基础软件包管理工具来安装。 红帽系 sudo yum install gitDebian系 sudo apt install gitWindows上安装git 去官网下载和操作系统位数相同的安装包.或者可以直接安装GitHub…

模板引擎是什么?

模板引擎&#xff08;Template Engine&#xff09;是一种用于生成文本输出的工具&#xff0c;尤其在Web开发中应用广泛。它的主要目的是将用户界面&#xff08;通常是HTML等模板文件&#xff09;与业务数据&#xff08;内容&#xff09;分离&#xff0c;从而提供一种高效、灵活…

[图解]SysML和EA建模住宅安全系统-14-黑盒系统规约

1 00:00:02,320 --> 00:00:07,610 接下来&#xff0c;我们看下一步指定黑盒系统需求 2 00:00:08,790 --> 00:00:10,490 就是说&#xff0c;把这个系统 3 00:00:11,880 --> 00:00:15,810 我们的目标系统&#xff0c;ESS&#xff0c;看成黑盒 4 00:00:18,030 --> …

spring管理bean源码解析

1. 从启动类开始 public static void main(String[] args) {// Run the SpringApplication class with the Application class as the first argumentSpringApplication.run(Application.class, args);}2. bean 实例化 // SpringAplication row1294,1295 run() // SpringApli…

Power Apps使用oData访问表数据并赋值前端

在使用OData查询语法通过Xrm.WebApi.retrieveMultipleRecords方法过滤数据时&#xff0c;你可以指定一个OData $filter 参数来限制返回的记录集。 以下是一个使用Xrm.WebApi.retrieveMultipleRecords方法成功的例子&#xff0c;它使用了OData $filter 参数来查询实体的记录&am…

【Parallel SSH】Ubuntu系统配置pssh实现多主机并行执行Master分发的命令

文章目录 一、配置多机免密登录二、ubuntu系统安装pssh三、并行命令脚本编写 一、配置多机免密登录 假设有1台主机作为Master分发命令&#xff0c;3台主机作为Servers执行命令。假设Master主机内网IP地址为192.168.0.12&#xff0c;Servers外网IP及对应的hostname分别为&#…

最新盘点!2024年最值得了解的24款项目管理软件

一、企业该如何选择一款项目管理工具&#xff1f;选择项目管理工具时需要考虑哪些因素&#xff1f; 在选择和对比项目管理工具时&#xff0c;可以通过加权方式进行对比和评估。参考以下模板&#xff0c;可以把自己关注的项目管理工具&#xff0c;进行表格对比&#xff0c;选中…

企业智能制造赋能的环境条件为什么重要?需要准备什么样的环境?

在全球制造业不断演进的今天&#xff0c;智能制造已经成为推动行业创新和转型的关键力量。它不仅代表了技术的革新&#xff0c;更是企业管理模式和运营思路的全面升级。然而&#xff0c;智能制造的落地实施并非一蹴而就&#xff0c;它需要企业在环境条件上做好充分的准备&#…

jail内部ubuntu apt升级失败问题解决-Dynamic MMap ran out of room

在FreeBSD jail 里安装启动Ubuntu jammy系统&#xff0c;每次装好执行jexec ubjammy sh进入Ubuntu系统后&#xff0c;执行apt update报错。 这个问题困惑了好久&#xff0c;突然有一天仔细去看报错信息&#xff0c;查看了(man 5 apt.conf) &#xff0c;才搞定问题。简单来说就是…

Mybatis拦截器介绍及其应用

Mybatis拦截器介绍及其应用 1、介绍 Mybatis拦截器设计的初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。通过Mybatis拦截器我们可以拦截某些方法的调用&#xff0c;我们可以选择在这些被拦截的方法执行前后加上某些逻辑&#xff0c;也可以在执…

Pycharm与Gitlab交互

环境准备 1、下载配置好本地Git 2、配置Pycharm上的Git 3、gitlab账号 Gitlab配置 Gitlab配置中文 账号》设置》偏好设置》简体中文 创建项目 命令行操作 打开项目会展示以下步骤 在pycharm克隆gitlab的项目 通过菜单栏 1、在PyCharm的顶部菜单栏中&#xff0c;选择“V…