C#:选择排序
介绍
选择排序是一种简单直观的排序算法,它的基本原理如下:
对于给定的一组记录,经过第一轮比较后得到最小记录,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个时为止。
排序过程
以数组{ 5, 4, 9, 8, 7, 6, 0, 1, 3, 2}为例,具体步骤如下:
5 | 4 | 9 | 8 | 7 | 6 | 0 | 1 | 3 | 2 |
---|
第一趟排序后:
0 | 4 | 9 | 8 | 7 | 6 | 5 | 1 | 3 | 2 |
---|---|---|---|---|---|---|---|---|---|
i |
第二趟排序后:
0 | 1 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
---|---|---|---|---|---|---|---|---|---|
i |
第三趟排序后:
0 | 1 | 2 | 8 | 7 | 6 | 5 | 4 | 3 | 9 |
---|---|---|---|---|---|---|---|---|---|
i |
第四趟排序后:
0 | 1 | 2 | 3 | 7 | 6 | 5 | 4 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
i |
第五趟排序后:
0 | 1 | 2 | 3 | 4 | 6 | 5 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
i |
第六趟排序后:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
i |
第七趟排序后:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
i |
第八趟排序后:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
i |
第九趟排序后:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
i |
最后排序结果:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|
程序代码
static void Main(string[] args) { int i = 0; int[] a = { 5, 4, 9, 8, 7, 6, 0, 1, 3, 2 }; selectSort(a); for (i = 0; i < a.Length; i++) { Console.WriteLine(a[i] + ""); } } private static void selectSort(int[] a) { int length = a.Length; for (int i = 0; i < length; i++) { int temp = a[i]; // 用来赋值当前循环最小的值 int flag = i; // 用来赋值当前循环最小值的下标 for (int j = i + 1; j < length; j++) { if (a[j] < temp) { temp = a[j]; flag = j; } } // 通过交换,把找到的值放到前面 if (flag != i) { a[flag] = a[i]; a[i] = temp; } } }
本文来自博客园,作者:一纸年华,转载请注明原文链接:https://www.cnblogs.com/nullcodeworld/p/16776541.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)