基本思想每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是稳定的排序方法。 排序过程【示例】: 初始关键字 [49 38 65 97 76 13 27 49] 第一趟排序后 13 [38 65 97 76 49 27 49] 第二趟排序后 13 27 [65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 49 65 49] 第四趟排序后 13 27 38 49 [76 97 65 49 ] 第五趟排序后 13 27 38 49 49 [97 65 76] 第六趟排序后 13 27 38 49 49 65 [97 76] 第七趟排序后 13 27 38 49 49 65 76 [97] 最后排序结果 13 27 38 49 49 65 76 97 C# 选择排序代码using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //选择排序 List<int> a = new List<int>(); List<int> b = new List<int>(); a.Add(50); a.Add(80); a.Add(49); a.Add(10); a.Add(66); int pos = 0; int loopCount = 0; for (int i =0; i<a.Count-1;i++) { loopCount++; if (a[pos] < a[i + 1]) { pos = i + 1; } if ((i + 1) == a.Count -1) { b.Add(a[pos]); a.RemoveAt(pos); pos = 0; i = -1; } } var result = b.Concat(a); List<int> resultList = result.ToList(); Console.WriteLine(result.ToString()); Console.ReadLine(); } } } |