选择排序法核心思想是:每一趟排序选择未排序元素中最小元素作为已排序部分的一个新元素。
具体实现如下:

/// <summary>
/// 选择排序
/// </summary>
/// <param name="data"></param>
public static void SelectionSort(int[] data)
{
if (data == null || data.Length < 1)
{
throw new ArgumentNullException("data");
}
int minValueIndex, temp;
for (int i = 0; i < data.Length - 1; i++)
{
minValueIndex = i;
for (int j = i + 1; j < data.Length; j++)
{
if (data[j] < data[minValueIndex])
{
minValueIndex = j;
}
}
temp = data[i];
data[i] = data[minValueIndex];
data[minValueIndex] = temp;
}
}
/// 选择排序
/// </summary>
/// <param name="data"></param>
public static void SelectionSort(int[] data)
{
if (data == null || data.Length < 1)
{
throw new ArgumentNullException("data");
}
int minValueIndex, temp;
for (int i = 0; i < data.Length - 1; i++)
{
minValueIndex = i;
for (int j = i + 1; j < data.Length; j++)
{
if (data[j] < data[minValueIndex])
{
minValueIndex = j;
}
}
temp = data[i];
data[i] = data[minValueIndex];
data[minValueIndex] = temp;
}
}