【算法】选择排序法

2023-05-16

一、介绍

1.选择排序法是将序列分为两段,有序前列和无序后列,每次查找无序后列中最大元素,将其插入到有序前列的最末尾处,直至无序后列最后一个元素,最终排序后的序列为降序序列

2.适用于包括数组和向量在内的序列

3.选择排序与冒泡排序的区别是选择排序每次遍历时会记住最大元素的位置,只进行一次交换,而冒泡排序每次遍历时会交换两个顺序不合法的元素

二、思想

1.将序列分为两段,有序前列[0,r)和无序后列[r,n-1]

2.在无序后列中查找最大元素s=A[m],记住其所在位置

3.将无序后列中的最大元素与无序前列的首位元素进行交换

4.循环停止标识:无序后列只剩余最后一个元素

三、程序

1.算法程序

#include "stdafx.h"
#include<iostream>

using namespace std;

void SelectSort(int A[],int n)
{
	for(int i = 0;i < n;i++ )
	{
		int max =i;
		for(int j = i+1;j < n;j++) //查找最大元素所在位置
		{
			if (A[j] > A[max])
			max =j;
		}
		int temp = A[max];  //交换无序后列中首元素与最大元素的位置
		A[max] = A[i];
		A[i] = temp;
	}
}

2.测试用例

void TestSelectSort()
{
	int A[] = {1,4,26,33,19,6,12,14,45,26,13};
	int n = 11;
	std ::cout << "排序前的数组:" ;
	for (int i = 0 ;i < n ; i++)
	{
		std ::cout << A[i]<<" " ;
	}
	SelectSort( A,n);
	std ::cout << "排序后的数组:" ;
	for (int i = 0 ;i < n ; i++)
	{
		std ::cout  << A[i]<<" " ;
	}
}

3.测试结果

四、复杂度

T(n)= O(n^2)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【算法】选择排序法 的相关文章

  • R数据分析——方法与案例详解(双色)

    R数据分析 方法与案例详解 xff08 双色 xff09 R数据分析 方法与案例详解 xff08 双色 xff09 是一本R 语言和数据分析的入门教材 xff0c 循序渐进 深入浅出 xff0c 每个知识点尽量从实际的应用案例出发 xff0
  • springboot集成swagger3出现如下错误:Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception

    原因 xff1a 这是因为Springfox使用的路径匹配是基于AntPathMatcher的 xff0c 而Spring Boot 2 6 X使用的是PathPatternMatcher 解决 xff1a 在application pro
  • 进程间通信(8) - 共享内存(posix)

    目录 1 前言 2 共享内存介绍 3 映射函数mmap 4 映射删除munmap 5 映射同步 6 内存映射区的大小 6 1映射文件的大小等于映射长度 6 2映射文件的大小小于映射长度 7 使用mmap进行IPC 7 1匿名内存映射实现亲缘
  • 51单片机定时器、计数器配置

    一 51单片机的定时 计数器的工作原理 在了解了单片机的时钟频率 时钟周期 机器周期之后 xff0c 显然我们可以知道定时器的工作原理 xff0c 在此之前我们先算出51单片机的脉冲周期 xff1a 以f 61 12MHz为例 xff0c
  • AndroidStudio Launching ‘app‘ Time out 错误

    问题一 AndroidStudio Launching app Time out 错误 环境 xff1a AndroidStudio xff1a Arctic Fox 2020 3 1 问题 点击debugger运行过后 xff0c 编译没
  • QT Creator项目打包发布

    按照如下方法 xff0c 可将项目成功打包发布 xff0c 别人不需要安装或配置QT Creator环境便可直接运行程序 xff0c 具体步骤如下 xff1a 1 在QT Creator使用release构建运行一下代码 xff0c 不要使
  • 超精简ubuntu的GPU配置(实测好用)

    一 安装英伟达 GPU 驱动 安装ubuntu后运行以下命令来升级内核版本 sudo apt get update sudo apt get upgrade 以下命令会将与你系统相兼容的驱动版本显示出来 sudo add apt repos
  • 在线升级R语言版本以及在RStudio容纳最新版本的R

    文章目录 1 升级R语言版本2 RStudio容纳最新版本的R3 参考资料 1 升级R语言版本 第一步 install packages 34 installr 34 安装 第二步 library installr 加载 第三步 updat
  • 傅里叶变换 ~ 什么是傅里叶变换?

    文章目录 1 什么是傅里叶变换 xff1f 2 为什么要进行傅里叶变换 xff1f 1 什么是傅里叶变换 xff1f 将时域的信号 xff0c 变换到频域的正弦信号 傅里叶变换是数字信号处理领域一种很重要的算法 要知道傅里叶变换算法的意义
  • 全国天气预报查询接口

    小编在此向大家介绍拥有105亿 43 调用量的产品 xff0c 该接口文档清晰 xff0c 对接方便 xff0c 还有服务很好 一 接口介绍 通过坐标区域 IP 地名 景点名称 电话区号或邮编等有效信息可查询天气情况 xff08 天气状况
  • 使用C++的CCF-CSP满分解决方案 202112-2 序列查询新解 含详细注释

    思路 最开始想挨个数计算fi和gi xff0c 这样只能拿70分 xff0c 想要拿全 xff0c 必须根据区间来划分 具体来说 xff0c 每次以r为单位移动 xff0c 每个区间长度为r xff0c 根据区间的左右值移动序列的下标 还是
  • UltraISO 帮你把U盘当光盘用

    UltraISO是款功能强大的光盘工具 xff0c 官方对其的概括是Handle CD and DVD Images with Ease xff0c 对我们就是要让处理CD和DVD镜像变得简单 现在这款软件的最新版本是UltraISO 9
  • Python基础语法一:Markdown的使用

    1 标题 在文字前加 xff08 个数可以使1 6个 xff0c 个数不同 xff0c 标题级别不同 xff09 用户管理 xff08 二级标题 xff09 三级标题 六级标题 2 代码块 xff08 代码引用 xff09 语法 xff1a
  • 《计算机科学》期刊投稿心得

    今日胃痛难忍 xff0c 无法静心 xff0c 遂分享一下投稿心得 这本期目前是北大核心 xff0c CCF B 上不上 xff0c 下不下的排名 xff0c 感叹一句 xff0c 中文核心太难中了 xff0c 越来越难中的感觉 2020年
  • IDEA MAVEN 项目 打包文件到指定目录

    像上一篇文章 xff0c 我们提到的 xff0c IDEA MAVEN struts项目中 xff0c 如果我们把 struts xml 文件放在 src 目录下 xff0c 编译的时候 xff0c 将无法打包到 WEB INF class
  • kali安装配置git

    kali安装配置git 安装图形界面 sudo apt install git cola 配置全局忽略 git config global core excludesfile root global gitignore vim root g

随机推荐

  • Freerdp2中sfreerdp在windows中运行

    了解 client Sample 下的freerdp c xff0c 有助于了解freerdp的结构 当然首先 xff0c 需要先在windows 中成功编译freerdp链接 然后可以看到Debug目录下会生成freerdp2 lib f
  • freerdp在windows中的编译(with openh264)

    我自己编译的node freerdp2模块在window 7中会莫名其妙的报一个错误 google上说跟windows的media foundation相关 xff0c 更莫名其妙的是 xff0c 重装系统后100 复现 但是看到最后一个报
  • 配置Linux网络,远程连接(NAT模式)

    配置Linux网络 xff0c 远程连接 xff08 NAT模式 xff09 1 打开vmware xff1a 编辑 gt 虚拟网络编辑器 xff0c 检查VMnet8中nat模式的子网IP NAT设置 xff0c 打开 NAT设置 xff
  • 根据Django Model动态生成sql的方法

    转自 xff1a http blog csdn net wenxuansoft article details 8039011 当定义好Django Model后 xff0c 一般可以在初始化调用Syncdb方法来自动在数据库里面生成相应的
  • jetty禁用http put和delete等方法的方式

    1 基于xml的配置方式 lt security constraint gt lt display name gt Example Security Constraint lt display name gt lt web resource
  • 《Qt5 C++ GUI Programming cook book 》笔记 1

    一 xff0c 前言 第一章 xff0c 使用QT Designer 和QT Quick Designer自定义设计用户界面 第二章 xff0c 通过增强的状态机框架和动画框架 xff0c 制作用户界面动画 第三章 xff0c 使用QT内建
  • 时间机器 Time Machine 三星T7 移动硬盘SSD解决方案

    Content 时间机器 Time Machine 三星T7 移动硬盘SSD解决方案1 简介2 硬盘分区3 时间机器4 文件格式5 Bug 时间机器 Time Machine 三星T7 移动硬盘SSD解决方案 1 简介 时间机器 xff08
  • SonarQube代码质量检查平台

    前言 xff1a code review xff1a 随着业务的发展 xff0c 系统越来越庞大 xff0c 原本简单稳定的功能 xff0c 可能在不断迭代后复杂度上升 xff0c 潜在的风险也随之暴露 xff0c 导致最终服务不稳定 xf
  • C++报错:The build tools for v141 (Platform Toolset = 'v141') cannot be found.

    问题内容 The build tools for v141 Platform Toolset 61 39 v141 39 cannot be found To build using the v141 build tools please
  • centos7+mysql5.7安装

    1 在官方网站下载linux版本的mysql xff0c 网址 xff1a https dev mysql com downloads mysql 2 解压文件并存放在 usr local mysql 5 7 20 路径下 xff08 1
  • Shell编程——位置参数变量

    介绍 当我们执行一个shell脚本时 xff0c 如果希望获取到命令行的参数信息 xff0c 就可以使用到位置参数变量 比如 xff1a myshell sh 100 200 这个就是一个执行shell的命令行 xff0c 可以在myshe
  • CentOS安装python2.7

    查版本 whereis python python2 7安装 1 下载 xff1a wget https www python org ftp python 2 7 11 Python 2 7 11 tar xz wget https ww
  • 单机版Ceph环境部署,Linux平台

    Ceph已经如火如荼 xff0c 很多公司都在使用Ceph作为自己的存储系统 日常学习不太可能安装一个Ceph集群 xff0c 因此本文介绍如何部署一个单节点的Ceph系统 另外 xff0c 本文安装的后端存储引擎是BlueStore xf
  • Ubuntu 升级 Python3.10

    参考文档 Upgrade Python to latest version 3 10 on Ubuntu Linux
  • 2022免费国内天气查询接口

    一个可以根据IP地址或者城市名称查询天气的免费接口 xff0c 支持国内3400 43 个城市天气 请求地址 GET https api itapi cn api tianqi 请求参数 参数名参数说明key用户请求密钥 xff0c 可在
  • PHP远程文件包含(RFI)并绕过远程URL包含限制

    文章来源 xff5c MS08067 公众号粉丝投稿 本文作者 xff1a VastSky xff08 Ms08067实验室粉丝 xff09 前言 本文我们讲如何绕过远程URL包含限制 在PHP开发环境php ini配置文里 allow u
  • 内网渗透 | 最全的内网凭据密码收集方法和技巧总结

    内网凭据密码收集指南 原创投稿作者 xff1a 深蓝实验室天威战队 前言 在攻防场景下 xff0c 红队人员拿下一台终端或服务器后 xff0c 第一步要做的往往就是信息收集 xff0c 为最大化利用权限 xff0c 扩大战果 xff0c 密
  • vi 命令

    最近面试有问常用操作 虽然修改用的还蛮多的 xff0c 但有的还确实不知道 xff01 在这里记录下 xff1a vi编辑器的三种模式 1 命令模式 xff08 command mode xff09 执行命令 在该模式中 xff0c 可以输
  • ubuntu下给code-server配置https

    下载mkcert wget wget https github com FiloSottile mkcert releases download v1 4 4 mkcert v1 4 4 linux amd64 将下载好的mkcert移动到
  • 【算法】选择排序法

    一 介绍 1 选择排序法是将序列分为两段 xff0c 有序前列和无序后列 xff0c 每次查找无序后列中最大元素 xff0c 将其插入到有序前列的最末尾处 xff0c 直至无序后列最后一个元素 xff0c 最终排序后的序列为降序序列 2 适