简单选择排序
2018-12-02 本文已影响3人
keloid
简单选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(0≤i<n)个记录交换。
内部for循环完全完成一次,选出最小值,再完全循环一次选出次小值,依次类推。
C#示例代码:
using System;
using System.Linq;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[] sqList = new int[] { 2, 1, 3, 4 };
SimpleSelectionSort(sqList);
sqList.ToList().ForEach(s => Console.Write(s + " "));
Console.ReadLine();
}
static void SimpleSelectionSort(int[] sqList)
{
for (int i = 0; i < sqList.Length; i++)
{
int min = i;
for (int j = i + 1; j < sqList.Length; j++)
{
if (sqList[j] < sqList[min])
{
min = j;
}
}
if (min != i)
{
Swap(sqList, min, i);
}
}
}
static void Swap(int[] sqList, int index1, int index2)
{
int value1 = sqList[index1];
sqList[index1] = sqList[index2];
sqList[index2] = value1;
}
}
}