每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
选择排序不像冒泡排序算法那样先并不急于调换位置,第一轮(k=1)先从array[k]开始逐个检查,看哪个数最小就记下该数所在的位置于minlIndex中,等一轮扫描完毕,如果找到比array[k-1]更小的元素,则把array[minlIndex]和a[k-1]对调,这时array[k]到最后一个元素中最小的元素就换到了array[k-1]的位置。 如此反复进行第二轮、第三轮…直到循环至最后一元素
void SelectSort(int[] numArray)
{
int min, tmp;
for (int i = 0; i < numArray.Length - 1; i++)
{
min = i;
for (int j = i + 1; j < numArray.Length; j++)
{
if (numArray[j] < numArray[min])
{
min = j;
}
}
tmp = numArray[i];
numArray[i] = numArray[min];
numArray[min] = tmp;
}
}