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.hqwc.cn/news/472043.html

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

相关文章

D. Divisible Pairs

思路&#xff1a;我们预处理出每个数分别摸上xy的值&#xff0c;用map存一下&#xff0c;然后遍历每个数&#xff0c;如果a b是x的倍数的话&#xff0c;那么他们模x的值相加为x&#xff0c;如果a - b是y的倍数的话&#xff0c;那么他们的模y的值相等。 代码&#xff1a; voi…

BUGKU-WEB bp

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 提示说&#xff1a;弱密码top1000&#xff1f;z???(爆破?)先看看源码有没有提示 相关工具 Burp Suit 爆破top1000字典&#xff0c;点击下载 解题步骤 随便测试账号密码admin、admin 得到提…

如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(一)

文章目录 效果展示说明利用工具整体思路代码 效果展示 说明 看了看网上很少做这个功能&#xff0c;但是我有这个需求&#xff0c;就抽出事件写了个简单的工具目前只能导出专栏的文章&#xff0c;不过思路类似并没有做 Promise 失败的重新发送&#xff0c;代码仍然待完善&#…

前端秘法基础式(CSS)(第一卷)

一.认识CSS CSS 指的是层叠样式表&#xff08;Cascading Style Sheets&#xff09;&#xff0c;它是一种用于描述网页外观和布局的语法 CSS 可以定义网页中元素的字体、颜色、大小、位置、背景等样式&#xff0c;使网页具有美观的外观和统 一的风格。 通过将 CSS 样式表与 HTML…

《VulnStack》ATTCK-1

title: 《VulnStack》ATT&CK-1 date: 2024-01-29 14:53:49 updated: 2024-02-14 18:55:49 categories: WriteUp&#xff1a;Cyber-Range excerpt: 主机发现、端口扫描&#xff0c;服务探测&#xff0c;操作系统探测、nmap 漏洞库扫描、网站首页信息泄露、msf 渗透与信息收集…

题解37-42

101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,nul…

P1219 八皇后 (dfs 表格坐标关系)

一个正常的dfs&#xff08;数据范围1-13&#xff09;&#xff0c;发现一条对角线上&#xff0c;分别符合和与差相等。因为有负数&#xff0c;这里我最开始开的是map&#xff0c;发现卡了最后一个点TLE&#xff0c;记录一下时间复杂度&#xff08; map&#xff0c;set的时间复杂…

前端工程化面试题 | 09.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化

图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 卷积神经网络的一些基本概念&#xff1a;图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化 1.图像卷积、步长、填充 图像卷积&#xff1a;卷积核矩阵在一个原始图像矩阵上 “从上往下、…

MessageQueue --- RabbitMQ

MessageQueue --- RabbitMQ RabbitMQ IntroRabbitMQ 核心概念RabbitMQ 分发类型Dead letter (死信)保证消息的可靠传递 RabbitMQ Intro 2007年发布&#xff0c;是一个在AMQP&#xff08;高级消息队列协议&#xff09;基础上完成的&#xff0c;可复用的企业消息系统&#xff0c;…

35岁转行,是我人生中最正确的选择

前言 经常听到有人说&#xff0c;35岁是职场的分水岭&#xff0c;但我觉得我的35岁&#xff0c;人生才刚刚开始。 35岁前后&#xff0c;我生二胎&#xff0c;考研&#xff0c;跳槽&#xff0c;转行&#xff0c;从传统行业到服务业&#xff0c;从服务业到新能源行业&#xff0…

【简写MyBatis】01-简单映射器

前言 新开一个坑&#xff0c;为了学习一下MyBatis的源码&#xff0c;写代码是次要的&#xff0c;主要为了吸收一下其中的思想和手法。 目的 关联对象接口和映射类的问题&#xff0c;把 DAO 接口使用代理类&#xff0c;包装映射操作。 知识点 动态代理简单工厂模式Invocati…