c# 选择排序
基本思想每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是稳定的排序方法。
排序过程【示例】: 初始关键字 [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();
}
}
}
|