基本思想
假如有一堆苹果在“篮子”中,第一次从这一堆苹果中找到最小的那个苹果放到“盘子”里。然后继续从这一堆苹果中再去找最小的苹果放到盘子里以此排开,然后就这样不断的重复直到将所有的无序苹果从篮子中按照从小到大的顺序排列在盘子中。当然最后只剩一个苹果的时候就不用筛选了。
代码实现
namespace _007_简单选择排序
{
class Program
{
static void SelectSort(int[] dataArray)
{
for (int i = 0; i < dataArray.Length-1; i++)
{
int min = dataArray[i]; //假设现在i是最小的那个苹果
int minIndex = i; //假设最小的索引就是这个
for (int j = i+1; j < dataArray.Length; j++)
{
if (dataArray[j]<min)
{
min = dataArray[j];
minIndex = j;
}
}
if (minIndex!=i) //如果不是最小值的时候那么久交换位置
{
int temp = dataArray[i];
dataArray[i] = dataArray[minIndex]; //将最小值得位置放到i的位置
dataArray[minIndex] = temp; //交换
}
}
}
static void Main(string[] args)
{
int[] selectArray = new int[] { 43, 23, 45, 20, 34,8 };
SelectSort(selectArray);
foreach (var item in selectArray)
{
Console.Write(item+" ");
}
Console.ReadKey();
}
}
}