数据结构之选择排序<select_sort>

数据结构【选择排序】 排序的基本概念 在排序中结点(数据元素)称为“记录”, 记录的集合称为 “文件”,内存中文件也常称为“线性表”。 1.排序(Sorting): 排序(Sorting) 是按关键字的 非递减或非递增顺序 对一组记录 重新进行排列的操作。 所谓排序就是将原本无序的序列重新排成有序的序列。在这个序列中的每一项可能是一个数据元素,也可能是一条记录(由多个数据元素构成组成的,例如一个学生的信息是由学号,姓名,性别,年龄等组成)。 如果是记录,则可以按照主关键字进行排序(例如一个学生的学号是唯一的用来标识学生身份的 阅读详情

选择排序其实就是将待排序列的第一个记录标记为最小,然后将其与剩余的其他记录比较找到最小的并交换,然后将标记后移并和剩余的其他记录比较

其实现如下:

void select_sort(int *array, int length)
{
    int min_index = 0;   //标记最小值下标
    int i = 0;
    int j = 0;
    int temp = 0;        //用于交换

    for(i = 0; i < length - 1; ++i)
    { 
        min_index = i;
        //找到最小值下标
        for(j = i + 1; j < length; ++j)
        {
            if(array[j] < array[min_index])
            {
                min_index = j;
            }
        }

        if(min_index != i)
        {  
            temp = array[i];
            array[i] = array[min_index];
            array[min_index] = temp;
        }
    }
}
简单选择排序,输出每趟结果 描述 用函数实现简单选择排序,并输出每趟排序的结果 输入格式 第一行:键盘输入待排序关键的个数n 第二行:输入n个待排序关键字,用空格分隔数据 输出格式 每行输出每趟排序的结果,数据之间用一个空格分隔 输入样例 10 5 4 8 0 9 3 2 6 7 1 输出样例 0 4 8 5 9 3 2 6 7 1 0 1 8 5 9 3 2 6 7 4 0 1 2 5 9 3 8 6 7 4 0 1 2 3 9 5 8 6 7 4 0 1 2 3 4 5 8 6 7 9 0 1 2 3 4 5 8 6 7 9 0 1 2 3 4 5 6 8 7 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 立即下载

相关推荐

数据结构之选择排序

数据结构之选择排序

直接选择排序

选择排序 时间复杂度:O(n^2),不稳定。 思想:初始情况:有序空间为空,无序空间为整个待排空间。 过程:每次从无序空间取出一个最小值和无序空间第一个元素进行交换,然后缩小无序区间,直到无序区间只剩一个元素 代码: void select_sort(int *arr...

醉如泥的博客 273

取证实战:当嫌疑人电脑已关机,如何利用EFDD从休眠文件提取BitLocker密钥?

本文详细介绍了如何利用Elcomsoft Forensic Disk Decryptor(EFDD)从休眠文件(hiberfil.sys)中提取BitLocker密钥的实战技术。通过分析休眠文件中的内存快照,取证人员可以突破已关机加密设备的防线,获取关键解密信息。文章涵盖了工具配置、镜像获取、密钥提取及验证等完整流程,并提供了疑难问题解决方案和法律合规建议。

weixin_29315091的博客 342

简单排序算法总结(C语言版)

#include #include #include //冒泡排序 void bubble_sort(int * array,int len) { int i=0,j=0; for(i=0;i { for(j=0;j { if(array[j]>array[j+1]) { int temp=array[j+1]; array[j+1]=array[j]; arr

qq_37185716的博客 353

Java云上香云祭祀线上祭祀系统小程序源码

云上香云祭祀线上祭祀系统”,不仅是一种祭祀方式的创新,更是对传统文化的一次深情致敬。它让我们明白,无论时代如何变迁,对亲人的怀念与尊重永远不会改变。在这个特别的平台上,让我们共同守护那份跨越时空的爱与思念,让心灵得以安放,让生命之树常青。🌳。

2401_84413757的博客 802

基于QGIS的DEM地形数据精细化处理:从裁剪、合并到成果输出

本文详细介绍了使用QGIS进行DEM地形数据的精细化处理流程,包括数据获取、裁剪、合并及成果输出等关键步骤。通过实战技巧和注意事项,帮助用户高效处理地形数据,适用于GIS分析、三维建模等应用场景。

weixin_29093017的博客 450

数据结构与算法--选择排序(selecttion sort)

草稿

IRQHandler的博客 301

脑机接口(BCI)从原理到开发实战 07|运动想象BCI实战:基于BCI Competition IV 2a数据集

本文基于BCI Competition IV 2a数据集,详细介绍运动想象脑机接口系统的全流程实现。首先概述了该数据集的实验范式、参数特点和优势,然后指导环境准备与数据下载。通过代码示例展示了数据加载、事件标记提取和信号可视化方法。重点构建了完整的预处理流水线,包括通道选择、重参考、带通滤波(8-30Hz)和ICA去伪迹等关键步骤。文章旨在帮助读者将零散的BCI知识整合为完整的实战项目,掌握从原始脑电数据到运动意图解码的核心技术。

小明的博客 846

C++选择排序算法

#include <iostream> void select_sort(int arr[], int length) { for (int i = 0; i < length - 1; i++) { for (int j = i + 1; j < length; j++) { int min_index = i; ...

ocfbnj的博客 175

单像素成像技术原理与Matlab仿真实现

傅里叶变换是数字图像处理的核心数学工具,它将图像从空间域转换到频率域表示。基于傅里叶频谱分析的成像技术通过采集关键频率分量实现图像重建,这种原理催生了单像素成像这一创新技术。单像素成像利用空间光调制器和单个探测器直接测量傅里叶系数,结合压缩感知算法实现高效成像,在红外、太赫兹等特殊波段展现出独特优势。通过Matlab仿真可以验证傅里叶基测量矩阵的构建、压缩感知重建等关键技术环节,为实际系统开发提供理论基础。该技术在弱光环境成像、显微观测等领域具有重要应用价值,其低成本特性也大大降低了特殊波段成像的门槛。

weixin_29061425的博客 344

eCognition易康操作教程(二):多尺度分割基于多光谱数据构建规则集,结合DSM高程数据提取建筑物、树木和绿地

一、数据 数据来源:教程中的实验数据,共包含RGB三个波段,还有数字地表模型(以下简称DSM)文件。 图一 RGB影像 数据特征:数据范围较小,要素种类少,仅包含较多的建筑和大片的绿地。由于建筑的房顶使用的材料和材料颜色不同,所以建筑的光谱特征没有规律,是不连续的特征。而绿地的光谱特征则十分容易分辨。 但是建筑通常具有规则的形状,而且建筑相比于周围其他要素...

蒹葭苍苍 8302

【数据结构】选择排序(详细)

直接选择排序、堆排序、top K问题

Zhuang_N的博客 1515

基于STM32+ESP8266+手机 APP+阿里云的智能小车设计与实现(项目资料ID:4)

本研究旨在设计一款高度智能化的智能小车系统,通过集成 STM32 微控制器、ESP8266 无线模块、手机 APP 以及阿里云平台,实现环境数据实时采集、远程精准控制和高效的数据交互。详细阐述系统各部分的设计原理、实现过程和测试结果,验证系统在实际应用中的可行性和有效性,为智能小车在多领域的应用提供技术支持。

以培养嵌入式工程师为己任 1万+

【数据结构】选择排序(一)——直接选择排序

本文介绍了排序算法中的直接选择排序算法,主要从算法思想、实例演示、代码实现等方面进行详细讲解。

Jacky_Feng的博客 1万+

1、JMP脚本编程全面指南:从基础到高级应用

本博客全面介绍了JMP脚本编程的各个方面,从JMP基础和JSL入门,到数据类型、数据结构、编程方法、数据表操作、图形与三维场景脚本,再到应用程序创建与扩展功能。内容涵盖脚本工具使用、常见任务实现、兼容性说明及未来发展趋势,旨在帮助用户掌握JMP脚本语言的强大功能,提升数据分析的自动化与定制化能力。适合从初学者到高级用户的深入学习与实践参考。

flink9streamer的博客 266

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数据结构:选择排序

选择排序是一种简单直观的排序算法。首先在未排序序列中找到最大(最小)的元素,存放到排序学列的其实位置,然后在剩余的未排序的元素中寻找最小(最大)元素,存放在已排序序列的后面。

weixin_45652283的博客 897

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数据结构——排序(选择排序)

选择排序(Selection Sort)是一种简单的排序算法,其核心思想是通过不断地从待排序的数据集合中选择出特定元素(最小或最大元素),并将其放置在已排序序列的合适位置,逐步构建出一个有序序列。在这里主要讲直接选择排序和堆排序。

2302_80919983的博客 1430

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

数据结构--经典排序之选择排序(超详细!!)

它的工作原理是,首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。.如果在交换之前,max恰好是begin,那么由于begin位置的值已经被交换出去,我们需要更新max为min的位置。.接着,我们使用Swap函数将begin位置的值与最小值进行交换,这样确保了begin位置始终是已排序的最小值。.Swap 函数是一个简单的值交换函数,它接受两个整数的指针,并交换它们所指向的值。

2301_79381549的博客 2144

Golang实现选择排序

@[Golang]Golang实现选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次...

terrygmx的博客 618

数据结构与算法之选择排序(含改进版)

选择排序概念 代码实现 时间复杂度 代码改进

努力让自己发光,对的人才能迎着光而来 1万+

数据结构排序算法——选择排序(堆排序)

选择排序—堆排序(Heap Sort) 一、算法基本思想: 堆分为"最大堆"和"最小堆":最大堆通常被用来进行"升序"排序,而最小堆通常被用来进行"降序"排序。 每个结点的值都大于其左孩子和右孩子结点的值,称之为大根堆: 每个结点的值都小于其左孩子和右孩子结点的值,称之为小根堆: 二、堆排序的基本步骤: 1.首先将等待排序的数组构造成一个类似大根堆的树,构造结束后整个数组当中的最大值就是堆结构的顶端; 2.然后将顶端的数与末尾的数交换位置,交换结束后末尾的数为最大值,剩下其他的待排序.

952

数据结构与算法笔记(七)—— 选择排序

什么是选择排序 选择排序(Selection sort)是一种简单直观的排序算法。 算法步骤:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法

别呀的博客 308

【数据结构】八大排序——选择排序

八大排序中其他排序 直接插入排序 希尔排序 文章目录前言选择排序原理代码实现 前言 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 选择排序原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小

weixin_56499830的博客 1328

选择排序 select sort

选择排序,可以说是冒泡排序的进化版,同样都是每一趟选出最大或者最小的元素,但是选择排序比起冒泡排序来说少了很多交换环节,因为选择排序会先记录最大元素的位置,当所有的数据都比较过之后,将记录位置的元素与待排序序列的第一个元素进行交换,也就是说选择排序每一趟都只进行一次交换。 以a[]={3,1,4,2,9,7}为例演示选择排序的工作原理: 1.从a[0]开始,用一个变量p记录当前最大元素的下标,

lsh_001的博客 382

【数据结构】中的选择(SelectSort)排序

【数据结构】中的选择排序

LX18792732127的博客 892

C语言选择排序(函数版)

C语言选择排序(函数版) 代码 //排序 #include<stdio.h> //数组大小为10,可根据需要自行修改 #define N 10 //选择排序函数 void select_sort(int num[],int n) //存放要排序数的数组,要排序数的个数 { int i,j,k,t; //i,j为遍历变量,k为最小或最大的数的下标,t为临时交换变量 for(i=0;i<n-1;i++) //外圈从第一个位置遍历到倒数第二个位置 { k=i; //先记

影龙武的博客qq_43594119 8271
上一篇: 如何判断大小端
下一篇: a 与 &a 的区别
lm_123_456
博客等级 码龄11年 35粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值