排序:简单选择排序算法分析

选择排序包括简单选择排序以及堆排序。

1.算法分析

每一趟在待排序元素中选取关键字最小的元素加入有序子序列。

n个元素的简单选择排序需要n-1趟处理。

在这里插入图片描述

2.代码实现

//交换
void swap(int &a, int &b) {int temp = a;a = b;b = temp;
}//简单选择排序
void SelectSort(int A[], int n) {for (int i = 0; i < n - 1; i++) {//一共进行n-1趟int min = i;//记录最小元素位置for (int j = i + 1; j < n; j++)//在A[i...n-1]中选择最小的元素if (A[j] < A[min]) min = j;//更新最小元素位置if (min != i) swap(A[i], A[min]);//封装的swap( )函数共移动元素3次}
}

3.算法性能分析

1.空间复杂度:O(1)
2.时间复杂度

无论有序、逆序、还是乱序,一定需要n-1趟处理,
总共需要对比关键字 ( n − 1 ) + ( n − 2 ) + . . . + 1 = n ( n − 1 ) / 2 (n-1)+(n-2)+...+1 = n(n-1)/2 (n1)+(n2)+...+1=n(n1)/2 次,元素交换次数 < n-1

时间复杂度: O ( n 2 ) O(n^2) O(n2)

4.稳定性

不稳定。

适用性:既可以用于顺序表,也可用链表。

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

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

相关文章

计算机毕业设计 基于SSM的垃圾分类管理系统(以医疗垃圾为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

activemq部署

目录 1.下载 2.java环境 3.解压启动 4.访问测试 5.问题记录 5.1.无法启动成功问题 5.2.其他服务器无法访问 1.下载 ActiveMQ 2.java环境 需要注意要求的jdk版本&#xff0c;否则启动不会成功 3.解压启动 tar -zxvf apache-activemq-5.18.2-bin.tar.gz 进入到目录下执行…

VS编译器常见的错误

以上问题在编译器中出现可以在编译器中最上面加入&#xff1a; #define_CRT_SECURE_NO_WARNINGS 或者将scanf修改为scanf_s 一定要在最上端&#xff01;&#xff01;&#xff01;最上端&#xff01;&#xff01;&#xff01;最上端加入&#xff01;&#xff01;&#xff01; 虽…

VMware下安装、配置ubuntu虚拟系统

本次测试以 ubuntu18.04 为例&#xff0c;进行操作说明。 1、下载镜像文件 进入网址&#xff1a;Ubuntu Releases &#xff0c;获取需下载的18.04系统镜像&#xff0c;如下图所示&#xff0c;直接下载iso文件即可。 2、VM中设置虚拟机参数 在VM主界面上&#xff0c;点击“创…

抖音开放平台第三方代小程序开发,一整套流程

大家好&#xff0c;我是小悟 抖音小程序第三方平台开发着力于解决抖音生态体系内的小程序管理问题&#xff0c;一套模板&#xff0c;随处部署。能尽可能地减少服务商的开发成本&#xff0c;服务商只用开发一套小程序代码作为模板就可以快速批量的孵化出大量的商家小程序。 第…

MeterSphere v2.10.X-lts 双节点HA部署方案

一、MeterSphere高可用部署架构及服务器配置 1.1 服务器信息 序号应用名称操作系统要求配置要求描述1负载均衡器CentOS 7.X /RedHat 7.X2C,4G&#xff0c;200GB部署Nginx&#xff0c;实现负载路由。 部署NFS服务器。2MeterSphere应用节点1CentOS 7.X /RedHat 7.X8C,16GB,200G…

指南:通过 NFTScan API 获取钱包地址的 NFT Statistics 全量数据

获取钱包地址的全量 NFT 及统计分析数据对于开发者和投资者来说都是十分重要的。具体来说&#xff1a;对开发者而言&#xff0c;获取每个钱包的完整资产数据&#xff0c;并进行统计分析&#xff0c;是构建钱包管理工具、资产分析应用的基础&#xff0c;这些应用都需要全面且精确…

【面试经典150 | 数组】H 指数

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;排序方法二&#xff1a;二分方法三&#xff1a;计数排序 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&am…

社区活跃开发者 Aaron 加入 sCrypt

Aaron&#xff08;周全&#xff09;是资深的 BSV 开发者&#xff0c;前 nChain BSV 基础架构团队成员&#xff0c;也是比特币协会在中国任命的首位技术推广专家。作为 BSV 社区的活跃成员&#xff0c;他多次作为演讲者参与区块链技术会议&#xff0c;开发了 Webot 应用、Witnes…

Flink容错机制

容错机制 在Flink中&#xff0c;有一套完整的容错机制来保证故障后的恢复&#xff0c;其中最重要的就是检查点。 检查点的保存 1&#xff09;周期性的触发保存 “随时存档”确实恢复起来方便&#xff0c;可是需要我们不停地做存档操作。如果每处理一条数据就进行检查点的保存…

Turf处理等压线

Turf是一个用于空间分析的JavaScript库。它包括传统的空间操作、用于创建GeoJSON数据的辅助函数以及数据分类和统计工具。Turf可以作为客户端插件添加到您的网站&#xff0c;也可以使用Node.js在服务器端运行Turf。 Turf是一个模块化的js类库&#xff0c;所有的模块都是在packa…

优维产品最佳实践:实例视图

背 景 模型可以定义很多的字段&#xff0c;当这些字段越来越多的时候&#xff0c;直接打开实例页面&#xff0c;会杂乱无章的呈现出来&#xff0c;对于用户来说无法快速的找到想要的信息&#xff0c;也不便于查看数据。而且并不是所有的字段都一定会录入了数据&#xff0c;常常…

路由器和路由到底啥区别?

在Vue中会有路由&#xff08;Route&#xff09;的概念&#xff0c;一些伙伴还不知道嘞&#xff0c;这就给大家讲解一下 我们日常出行都会碰到导航这个概念。 导航系统会给出从当前位置到目标位置的建议路径,这就是路由。 而 GPS 导航仪根据路由提供的路径,告诉我们每个路口是…

文档在线预览word、pdf、excel文件转html以实现文档在线预览

目录 一、前言 1、aspose2 、poi pdfbox3 spire二、将文件转换成html字符串 1、将word文件转成html字符串 1.1 使用aspose1.2 使用poi1.3 使用spire2、将pdf文件转成html字符串 2.1 使用aspose2.2 使用 poi pbfbox2.3 使用spire3、将excel文件转成html字符串 3.1 使用aspose…

Linux常见指令(1)

Linux常见指令[1] 一.前言1.操作系统简述 二.Linux常见指令1.登录Xshell2.Linux下的常见命令1.pwd2.ls1.ls -a2.ls -d3.ls -l 3.cd Linux中的文件系统1.文件的相关知识2.Linux下目录结构的认识1.什么叫做路径?2.Linux的整体目录结构3.为什么要有路径呢?4.绝对路径与相对路径 …

IntelliJ IDEA - Maven 在控制台Maven编译正常,但是在IDEA中不正常,表现不一致

文章目录 现象原因解决验证 现象 一个Maven项目&#xff0c;当导入到IDEA后&#xff0c;无法在IDEA中正常的编译和下载jar依赖&#xff0c;类似下面的截图。 但是在Windows控制台却可以正常编译&#xff0c;类似下面的截图。 CMD执行&#xff1a;mvn clean install -Dmaven.te…

就只说 3 个 Java 面试题

在面试时&#xff0c;即使是经验丰富的开发人员&#xff0c;也可能会发现这是一些很棘手的问题&#xff1a; 1、Java中“transient”关键字的用途是什么&#xff1f;如何才能实现这一目标&#xff1f; 在 Java 中&#xff0c;“transient”关键字用于指示类的特定字段不应包含…

(一)设计模式概述

设计模式是由GoF (Gang of Four&#xff09;首先提出的&#xff0c;它是解决特定问题的解决方案。设计模式本身是一种发现&#xff0c;而不是一种发明。学习设计模式可以让我们从别人的成功经验中获取新的灵感&#xff0c;从而写出更优秀的代码。 设计模式的主要特点如下&…

idea开发Springboot出租车管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 出租车管理系统是一套完善的完整信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c; 系统具有完整的源代码和数据…

Unity 制作登录功能01-创建登录的UI并获取输入内容

1.创建UI面板 导入插件TextMesh Pro 2.编写脚本获取用户输入 这里用的是输入框侦听函数&#xff0c;所有UI都可以使用侦听函数 &#xff0c;需要注意TMP_InputField 这个类是UI中导入的一个插件TextMesh Pro&#xff01;在代码中需要引用using TMPro; 命名空间&#xff01; …