C#排序算法——选择排序
没有时间磨不掉的记忆,没有死亡治不愈的伤痛。——《堂吉诃德》
“定义:从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。”
选择排序是非常直观且容易理解的一种排序,通过查找最小值(最小值),再转换位置达到排序的目的。
比如这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+1for (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
一个靠互联网苟且偷生的程序员
咱们下期见!
扫描二维码关注我吧
