选择排序

【数据结构】选择排序—直接选择排序、树形选择排序 选择排序的主要思想是每一趟从待排序列中选取一个关键字值最小的记录,也即第1趟从n个记录中选取关键字最小的记录,在第2趟中,从剩下的n-1个记录中选取关键字值最小的记录,直到整个序列中的记录都选完位置。 阅读详情

选择排序:列表分为有序(前半部分),无序(后半部分),从后半部分找出最小值,然后与后半部分的第一个进行交换,组成新的前半部分和后半部分。

可以想象为排队,但不再是像冒泡排序那样相邻的两个人进行比较。
1.从无序的队列最左边的第一个人开始比较,在后面的队伍里找。
2.2如果(左边第一个人)没有找到更矮的,那他回到原位,旁边的一个人去找更矮的人。
2.1.如果(左边第一个人)找到比他矮的,第一个人先回到原位。被找到的人重复第一个人动作往后找。依次类推,一直和最后一位同学比较完,找出了最矮的那位同学,和刚开始找的第一个人进行换位置。
在实际的代码中,寻找最低的同学的过程中,只是记录了下标没有像冒泡排序一样换位置,直到同学遍历了一次(即内层循环完一次)。才把最小值与无序的第一个值互换位置。

list1 = [54, 26, 93, 17, 77, 31]
n = len(list1)
for i in range(n-1):
    min_index = i  # 开最小值的下标为无序的第一个。
    for j in range(i+1,n):
        if list1[min_index] > list1[j]:
            min_index = j
    list1[min_index], list1[i] = list1[i], list1[min_index]
    # 内层循环结束后 两个元素再换位置。

print(list1)

[17, 26, 31, 54, 77, 93]
排序算法之 选择排序 选择排序   选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。   常用的选择排序方法有简单选择排序和堆排序。 简单选择排序 在介绍选择排序算法前,我们再回顾下冒泡算法。 冒泡算法是通过两两比较,不断交换,逐个推进的方式,来进行排序的。 一次遍历,得...... 阅读详情

相关推荐

汇川PLC和PLC之间ModebusTCP通讯

然后在全局变量中创建相应的变量关联IW和QW的寄存器创建全部变量//AM402作为主站——读H3U(D12-D21)//AM402作为主站——写给H3U(D200-D209)或者使用数组的方式。

panjinliang066333的博客 3万+

选择排序(简单、树形、堆排序)

常见的选择排序可以分为直接选择排序(Straight selection sort)、树形选择排序(Tree-type selection sort)以及堆排序(Heap sort)。

gyjxuexicyuyan的博客 1563

从USB相机标定到Aruco码精准定位:基于aruco-ros的机器人视觉实践

本文详细介绍了基于aruco-ros的机器人视觉实践,从USB相机标定到Aruco码精准定位的全流程。通过实战案例和优化技巧,展示了Aruco码在机器人导航中的高精度位姿识别能力,帮助开发者快速实现毫米级视觉定位系统。

weixin_27310417的博客 487

简单选择排序-------零基础学数据结构

简单选择排序选择排序的基本思想是:从待排序的元素序列中选择关键字最小或最大的元素,将其放在已排序元素序列的最前面或最后面,其余的元素构成新的待排序元素序列,并从待排序元素序列中选择关键字最小的元素,将其放在已排序元素序列的最前面或最后面。依次类推,直到待排序元素序列中没有待排序的元素,选择排序结束。本节的主要学习内容包括两种常用的选择排序:简单选择排序和堆排序。12.3.1  简单选择排序简单

szl的专栏 1072

GPT Researcher 的win docker安装攻略

github网址是:https://github.com/assafelovic/gpt-researcher/blob/master/README-zh_CN.md。使用 Docker 运行 AI-Researcher 项目的。因为docker安装方法不够清晰,因此写一个使用方法。打开设置——docker engine ,增加代码。如有其他问题,可提供错误截图或日志进一步排查!

weixin_43818488的博客 1123

手把手教学:利用AutoDL与vLLM快速部署DeepSeek-R1大模型实战指南

本文详细介绍了如何利用AutoDL平台和vLLM框架快速部署DeepSeek-R1大模型的实战指南。从服务器配置、vLLM安装优化到模型部署的两种方案,再到性能调优和生产环境建议,手把手教你高效完成大模型部署。特别针对国内开发者遇到的网络问题提供了稳定解决方案,并分享了显存优化、磁盘清理等实用技巧。

weixin_42531779的博客 327

内部排序之选择排序(直接选择排序,堆排序)

目录 堆排序简介及其代码 直接选择排序简介及其代码 选择排序总结 堆排序简介及其代码1、首先明确完全二叉树概念:  深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。其次明确堆的概念:  堆是具有以下性质的完全二叉树,每个结点的值小于或等于其孩子结点的值(小根堆),每个结点的值大于或等于其孩子结点的值(大根堆)堆的定义如图所示:2、

GailyYelp的博客 592

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 954

排序算法——选择排序

还是先来看看选择排序的思想。选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。 // tt.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" void sort(int a[], int count) { //选取count-1

liujiayu2的专栏 459

西电计组实验二 运算器实验

算术逻辑运算实验 一.实验目的   1.了解简单运算器的数据传输通路。   2.验证运算功能发生器的组合功能。   3.掌握算术逻辑运算加、减、与的工作原理。   4.验证实验台运算的8位加、减、与、直通功能。   5.按给定数据,完成几种指定的算术和逻辑运算。 二.实验原理   算术逻辑单元ALU的数据通路如图2-1所示。其中运算器ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个8位数据分别为A[7…0]和B[7…0],运算模式由S[3…0]的16种

Polaris的博客 1万+

【红外DDE算法】一种应用于高动态范围红外可视化的算法

【红外DDE算法】一种应用于高动态范围红外可视化的算法 - 这个算法背后的动机 - 展示这个算法的流程 - 然后讨论各个可调参数的意义。

sunwindl91181的博客 1682

八种排序方法(一)——选择排序

编译器:Xcode 编程语言:C++ 选择排序的基本思想: 每一趟在n-i+1(i=1,2,3…,n-1)个记录中选取关键字最小的记录与第i个记录交换,并作为有序序列中的第i个记录。 例如: 待排序列: 43,65,4,23,6,98,2,65,7,79 第一趟: 2,65,4,23,6,98,43,65,7,79 第二趟: 2,4,65,23,6,98,43,65,7,79 第三趟

Wang.T的博客 5万+

MaxScript批量修改材质、贴图名称

MaxScript批量修改材质、贴图名称1 实现效果1.1 修改前材质、贴图名称1.2 修改后2 代码 1 实现效果 1.1 修改前材质、贴图名称 1.2 修改后 2 代码 prefixName = "prefiname" maxFile = "maxfilepath" makeDir "newBitmappath" mapsPath = newbitmappath + "\\" fn formatStr index = ( str = index as string newS

郑德帅 3240

排序——选择排序

前面的文章介绍了排序的概念,插入排序和交换排序,这篇文章则介绍一下选择排序的相关内容。

Blusher1的博客 2649

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

排序算法:选择排序(直接选择排序、堆排序)

使用C语言实现的选择排序算法和堆排序算法,详细讲解了选择排序的实现逻辑,包含两个排序算法的完整代码,以及两个算法的效率比较。

Yikefore的博客 4248

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

选择排序(选择排序,堆排序)

两种选择排序!

qq_52777887的博客 2183

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

选择类排序法 — 简单选择排序

9.4 选择类排序法 选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。我们主要介绍简单选择排序、树型选择排序和堆排序。    简单选择排序 简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录排序完成为止

Rprop 2万+

选择排序之简单选择排序

选择排序的原理:选择排序的主要操作是选择,主要思想:每趟排序在待排序序列中选择最小的元素记录,添加到有序序列中。选择排序主要有简单选择排序(直接选择排序)和堆排序,堆排序算法可以看作是简单选择排序算法的改进;这里主要介绍简单选择排序算法。...

m0_64529905的博客 3055

简单选择排序与直接选择排序

是对元素直接排序 而先获取到元素的最大值或最小值下标再进行交换每次遇到n-1>n 的时候就要发生交换;则只是记录下较大那个元素的位置,这样一轮过后这个记录变身本轮所要选取的最大值,而每轮需要确定的位置已由外层循环确定,只需将最大元素位置记录所对应的元素与要确定的位置交换机可。话不多说直接上代码演示。

orehrepuS的博客 3876

排序之选择排序

一、直接选择排序 原理: 每一次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前),直到全部待排序的数据元素排完 。 代码实现: public void selectSort(int[] arr) { for(int i = 0;i < arr.length;i++) { int maxPos = 0; fo...

Sl_4397的博客 783

选择排序 简单选择排序 直接选择排序的区别

选择排序 图示过程如下:

weixin_40976389的博客 6506

选择排序和二元选择排序

选择排序 思想: 在一个数组中,找到最小的数放在最前面,然后再在剩下的数中找到最小的放到第二位....以此类推 代码实现: #include<iostream> using namespace std; void swap(int& x, int& y)//交换函数 { int temp = 0; temp = x; x = y; y = temp; } v...

承泓风的博客 734

Java版本的选择排序及选择排序的优化

选择排序及选择排序的优化C语言版 public class SelectSort{ public static void main(String[] args) { int[] arr = new int[]{10,2,5,4,6,9,3,1,0}; System.out.print("排序前:"); for(int i:arr){ ...

zhao_miao的博客 1091

python选择排序_Python选择排序

python选择排序Here you’ll learn about python selection sort algorithm with program example. 在这里,您将通过程序示例了解python选择排序算法。 Selection sort is one of the easiest sorting algorithm out there. In Selection sor...

culing2941的博客 1814
上一篇: 冒泡排序
下一篇: 快速排序
Angus____
博客等级 码龄8年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值