选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
思想很简单:在数组中搜索最小的数和第一个交换位置,第二个最小的值和第二个位置交换位置,依次类推
如果你觉得有困难,就先写一个依次找到小数,第二个最小数得程序,然后想办法找到这些数位置,最后再去实现位置得放置问题
代码实现
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace SelectSort{ class Program { static void Main(string[] args) { int[] arr = new int[] { 5, 1, 7, 2, 4, 9, 3 }; Console.WriteLine("排序之前:"); foreach (int i in arr) { Console.Write(i.ToString() + " "); } Console.WriteLine(); int min_index;//记录最小数的下标 int tmp;//用于值交换 for (int i =0;iarr[j]) { min_index = j;//寻找数组中值最小的那个位置 } }//一轮循环后,找到最小的值得位置是min_index,最小值应该放在第一位 tmp = arr[i];//位置腾出来 arr[i] = arr[min_index];//将小得那个值放上去 arr[min_index] = tmp; //其实就是在数组中搜索最小得和第一个交换位置,第二个最小得值和第二个位置交换位置,依次类推 } Console.WriteLine("排序之后的结果:"); foreach (int i in arr) { Console.Write(i.ToString() + " "); } Console.WriteLine(); } }}