基本思想每一趟從待排序的數據元素中選出最小(或最大)的一個元素,順序放在已排好序的數列的最後,直到所有待排序的數據元素排完。c#
選擇排序是穩定的排序方法。
排序過程【示例】:ide 初始關鍵字 [49 38 65 97 76 13 27 49]oop 第一趟排序後 13 [38 65 97 76 49 27 49]spa 第二趟排序後 13 27 [65 97 76 49 38 49]排序 第三趟排序後 13 27 38 [97 76 49 65 49]ci 第四趟排序後 13 27 38 49 [76 97 65 49 ]string 第五趟排序後 13 27 38 49 49 [97 65 76]it 第六趟排序後 13 27 38 49 49 65 [97 76]io 第七趟排序後 13 27 38 49 49 65 76 [97]table 最後排序結果 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();
}
}
}
|