vlambda博客
学习文章列表

C#排序算法——选择排序

This browser does not support music or audio playback. Please play it in Weixin or another browser.

  • 有时间磨不掉的记忆,没有死亡治不愈的伤痛。——堂吉诃德


“定义:从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。


——前言:

    选择排序是非常直观且容易理解的一种排序,通过查找最小值(最小值),再转换位置达到排序的目的。


比如这6,2,8,1四个数字要排序,首先选择6这个数字作为第一个比较数,2<6记录下2的下标,8>2不记录,1<2发现1才是最小的值,便让1和6转换下位置,然后以2开始为比较数依次类推。


动图演示:


01

Code

下面使用C#代码进行实现:

/// <summary>/// 选择排序 从小到大/// </summary>private void XuanZeSort(List<int> Nums){ for (int i = 0; i < Nums.Count; i++) {        //比较数下标 int MinIndex = i;        //因为要从比较数后面的一位开始比较,所以是i+1 for (int j = i + 1; j < Nums.Count; j++) {            //如果发现小的就赶紧重新赋值 if (Nums[j] < Nums[MinIndex]) { MinIndex = j; } } //交换 Swap(Nums, MinIndex, i); }}/// <summary>/// 交换数据/// </summary>private void Swap(List<int> Nums, int index1, int index2){ int temp = Nums[index1]; Nums[index1] = Nums[index2]; Nums[index2] = temp;}






END



感谢阅读


你知道的越多,你不知道的越多

我是EAST

一个靠互联网苟且偷生的程序员

咱们下期见!




扫描二维码关注我吧



庚子年冲冲冲 发起了一个读者讨论 留言区