C#一维数组排序方法:选择排序法

目录

一、数组元素常见的排序法

1.选择排序法

二、实例1:选择排序法

1.源码

2.生成效果 


一、数组元素常见的排序法

        常见的排序法:选择排序法、冒泡排序法、快速排序法、直接插入法、希尔排序法、Array.Sort方法。

1.选择排序法

        通过遍历实现排序,第i次遍历获得index=i以后的元素中的最小值,然后与index=i的元素互换。直至遍历结束。

二、实例1:选择排序法

1.源码

// 选择排序法
using System.Xml.Linq;namespace _099
{public partial class Form1 : Form{private Label? label1;private Label? label2;private TextBox? textBox1;private TextBox? textBox2;private int[]? int_array;//定义数组字段private readonly Random? random = new();//创建随机数对象public Form1(){InitializeComponent();StartPosition = FormStartPosition.CenterScreen;Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // label1// label1 = new Label{AutoSize = true,Location = new Point(12, 9),Name = "label1",Size = new Size(68, 17),TabIndex = 0,Text = "生成数组:"};label1.Click += Label1_Click;// // label2// label2 = new Label{AutoSize = true,Location = new Point(12, 82),Name = "label2",Size = new Size(68, 17),TabIndex = 1,Text = "数组排序:"};label2.Click += Label2_Click;// // textBox1// textBox1 = new TextBox{Location = new Point(12, 29),Multiline = true,Name = "textBox1",Size = new Size(300, 44),TabIndex = 2};// // textBox2// textBox2 = new TextBox{Location = new Point(12, 102),Multiline = true,Name = "textBox2",Size = new Size(300, 44),TabIndex = 3};// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(329, 157);Controls.Add(textBox2);Controls.Add(textBox1);Controls.Add(label2);Controls.Add(label1);Name = "Form1";Text = "选择排序法";}/// <summary>/// 生成随机数数组/// 随机生成数组长度,随机生成数组元素,遍历输出/// </summary>private void Label1_Click(object? sender, EventArgs e){int_array = new int[random!.Next(10, 20)];for (int i = 0; i < int_array.Length; i++){int_array[i] = random.Next(0, 100);}textBox1!.Clear();foreach (int i in int_array){textBox1.Text += i.ToString() + ", ";}}/// <summary>/// 数组排序/// </summary>private void Label2_Click(object? sender, EventArgs e){if (int_array != null){int min;for (int i = 0; i < int_array!.GetUpperBound(0); i++){min = i;for (int j = i + 1; j < int_array.Length; j++)//循环访问数组中第i+1后面的元素{if (int_array[j] < int_array[min])        //并求得其中的最小值,若找到则min=jmin = j;}(int_array[i], int_array[min]) = (int_array[min], int_array[i]);//组元交换,最小值与当前行的第i个元素交换,其它元素位置不变}textBox2!.Clear();foreach (int i in int_array){int index = Array.IndexOf(int_array, i);if (index != int_array.GetUpperBound(0)){textBox2.Text += i.ToString() + ", ";}elsetextBox2.Text += i.ToString();}}else{MessageBox.Show("首先应当生成数组,然后再进行排序。", "提示!");}}}
}

2.生成效果 

 

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

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

相关文章

2024年华为OD机试真题-按身高和体重排队-Python-OD统一考试(C卷)

题目描述: :某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持原有的编号顺序关系。请输出排列后的学生编号。 输入描述:两个序列,每个序列由n个正整数组成(0 < n …

λ-矩阵的多项式展开

原文链接 定义. 对于 m n m \times n mn 的 λ \lambda λ-矩阵 A ( λ ) [ a 11 ( λ ) . . . a 1 n ( λ ) ⋮ ⋮ a m 1 ( λ ) . . . a m n ( λ ) ] \mathbf{A}(\lambda)\begin{bmatrix} a_{11}(\lambda) & ... & a_{1n}(\lambda)\\ \vdots & & \vdo…

基于Qt的人脸识别项目(功能:颜值检测,口罩检测,表情检测,性别检测,年龄预测等)

完整代码链接在文章末尾 效果展示 代码讲解(待更新) qt图片文件上传 #include <QtWidgets> #include <QFileDialog>

多模态学习综述(MultiModal Learning)

最早开始关注到多模态机器学习是看到Jeff Dean在2019年年底NeurIPS大会上的一个采访报道&#xff0c;讲到了2020年机器学习趋势&#xff1a;多任务和多模态学习将成为突破口。 Jeff Dean 谈2020年机器学习趋势&#xff1a;多任务和多模式学习将成为突破口 站在2022年&#xff…

时间的力量:情绪接纳与心理调适的动态过程

在个体生活过程中&#xff0c;常有面对当下的困境或痛苦无法接受的情形。然而&#xff0c;随着时间的推移&#xff0c;人们往往能逐渐适应并接受那些曾经看似难以承受的事情。这种从“当下心境接受不了”到“过一段时间能够接受”的转变&#xff0c;体现了人类心理韧性和自我调…

如何流畅进入Github

前言 以下软件是免费的&#xff0c;放心用 一、进入右边的下载链接https://steampp.net/ 二、点击下载 三、点击接受并下载 四、随便选一个下载链接进行下载 五、软件安装好打开后&#xff0c;找到Github 六、点击全部启用 七、再点击左上角的一键加速 八、这个时候你再进Git…

跳过mysql8.0密码重置密码 Shell脚本

要在 MySQL 8.0 中通过 Shell 脚本跳过密码验证以重置密码&#xff0c;你可以遵循以下步骤&#xff1a;首先&#xff0c;确保你有足够的权限来编辑配置文件和重启 MySQL 服务。下面是一个简单的 Shell 脚本示例&#xff0c;该脚本展示了如何跳过密码验证以重置 MySQL 8.0 的 ro…

LAXCUS分布式操作系统目标:软件算力入口

英伟达现在的市值相当于整个中国股市&#xff01;说明了什么&#xff1f; AI 大潮下&#xff0c;算力就是生产力&#xff0c;也是未来 20 年一切产业的基础&#xff0c;英伟达已经把住硬件算力入口&#xff0c;LAXCUS 分布式操作系统瞄准软件算力入口&#xff0c;做好了&#…

Linux第53步_移植ST公司的linux内核第5步_系统镜像打包并烧录到EMMC

本节主要学习系统镜像打包&#xff0c;然后将打包文件烧录到EMMC测试。 1、创建bootfs文件夹 1)、打开第1个终端 输入“ls回车” 输入“cd linux/回车”&#xff0c;切换到“linux”目录 输入“ls回车”&#xff0c;列出“linux”目录下的文件和文件夹 输入“cd atk-mp1/…

洛谷:P1303 A*B Problem(高精度乘法-模拟、字符串)

题目描述 给出两个非负整数&#xff0c;求它们的乘积。 输入格式 输入共两行&#xff0c;每行一个非负整数。 输出格式 输出一个非负整数表示乘积。 输入输出样例 输入 1 2 输出 2 说明/提示 每个非负整数不超过 10^2000 思路都写在代码里了。。。 直接上代码 …

Hive的相关概念——架构、数据存储、读写文件机制

目录 一、架构及组件介绍 1.1 Hive整体架构 1.2 Hive组件 1.3 Hive数据模型&#xff08;Data Model&#xff09; 1.3.1 Databases 1.3.2 Tables 1.3.3 Partitions 1.3.4 Buckets 二、Hive读写文件机制 2.1 SerDe 作用 2.2 Hive读写文件流程 2.2.1 读取文件的过程 …

python 之弗洛伊德算法

文章目录 介绍代码 介绍 弗洛伊德算法&#xff0c;也称为Floyd-Warshall算法&#xff0c;是一种用于解决图中所有节点对之间的最短路径问题的动态规划算法。它可以处理带有负权边但不含负权环的加权有向图或无向图。该算法以Robert Floyd和Stephen Warshall的名字命名&#xff…

C#系列-C#EF框架实现增删改查(27)

在C#中&#xff0c;Entity Framework (EF) 是一个流行的对象关系映射器 (ORM)&#xff0c;它使得开发者可以使用面向对象的方式来操作数据库。使用EF&#xff0c;你可以将数据库表映射到C#类&#xff0c;并使用EF提供的方法来执行数据库操作&#xff0c;如增加、删除、修改和查…

线性时间非比较类排序之基数排序

基数排序 基数排序是桶排序的扩展&#xff0c;因此又称“桶子法”&#xff0c;它是通过键值的部分信息&#xff0c;将要排序的元素分配至某些“桶”中&#xff0c;以达到排序的作用。 1. 算法思想 将各元素按位数切割成不同的数字&#xff0c;然后分别根据每个位数的比较结果…

【设计模式】springboot3项目整合模板方法深入理解设计模式之模板方法(Template Method)

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;底层原理高级进阶》 &#x1f680…

C#使用密封类密封用户信息

目录 一、涉及到的知识点 1.密封类定义 2.何时使用密封类 3.使用密封类的注意事项 二、实例1 三、实例2 1.源码 2.生成效果 在C#中&#xff0c;密封类&#xff08;sealed class&#xff09;是一种不能被其他类继承的类。它用于防止其他类继承它的功能和属性。 一、涉…

深度解析 Netty 架构与原理

一共 28661字&#xff0c;耐心看完。 在阅读本文前最好有 Java 的 IO 编程经验&#xff08;知道 Java 的各种 IO 流&#xff09;&#xff0c;以及 Java 网络编程经验&#xff08;用 ServerSocket 和 Socket 写过 demo&#xff09;&#xff0c;并对 Java NIO 有基本的认识&…

挖掘嵌入式系统在物联网和智能设备中的应用潜力

1. 物联网的发展和嵌入式系统 介绍物联网的定义和特点&#xff0c;以及其在各个领域中的应用。探讨物联网对嵌入式系统的需求&#xff0c;包括低功耗、小型化、实时性等特性&#xff0c;以及对嵌入式系统的数据处理和通信能力的要求。 2. 嵌入式系统在智能设备中的应用 分析…

linux---内存管理

一 虚拟内存 即使是现代操作系统中&#xff0c;内存依然是计算机中很宝贵的资源&#xff0c;看看你电脑几个T固态硬盘&#xff0c;再看看内存大小就知道了。 为了充分利用和管理系统内存资源&#xff0c;Linux采用虚拟内存管理技术&#xff0c;利用虚拟内存技术让每个进程都有…

计算机网络——09Web-and-HTTP

Web and HTTP 一些术语 Web页&#xff1a;由一些对象组成对象可以是HTML文件、JPEG图像&#xff0c;JAVA小程序&#xff0c;声音剪辑文件等Web页含有一个基本的HTML文件&#xff0c;该基本HTML文件又包含若干对象的引用&#xff08;链接&#xff09;通过URL对每个对象进行引用…