每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
//选择排序算法
对数arr使用选择排序算法排序,有两种方式
第一种是,首先假设第一个元素为最小,然后拿第一个与第二个相比,如果第二个小,那么就交换值,保持第一个为最小,一直比较到最后一个元素,然后再从第二个开始上一个步骤。
第二种是, 首先假设第一个元素为最小,然后拿第一个与第二个相比,如果第二个小,那么就取出第二个的索引值index=2,第一个循环结束后,得到最小值的索引,最后和第一个元素交换。
publicvoid SelectionSort()
{
//第一种 直接交换,比较一个最小的就放到第一位
//for (int j = 0; j < arr.Length-1; j++)
//{
// int min, temp;
// min = arr[j];
// for (int i = j+1; i < arr.Length; i++)
// {
// if (arr[j] > arr[i])
// {
// temp = arr[j];
// arr[j] = arr[i];
// arr[i] = temp;
// }
// }
// this.DisplayElements();
// Console.Write("\n");
//}
//第二种 比较保存较小的index值,最后放到第一位
for (int j = 0; j < arr.Length-1; j++)
{
int min,temp;
min = j;
for (int i = j+1; i < arr.Length; i++)
{
if (arr[min] > arr[i])
{
min = i;
}
}
temp = arr[j];
arr[j] = arr[min];
arr[min] = temp;
}
}