选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
主要有:简单选择排序、树型选择排序和堆排序。
简单选择排序
简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录 进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。例如:进行第i趟选择时,从当前候选记录中选出关键字最小的k号记录,并和第i个记录进行交 换
c#代码:
#region 简单选择排序
static void SimpleSelectSort(ref int[] array)
{
for (int n = 0; n < array.Length; n++)
{
int position = GetMinPosition(array, n);
if (n != position)
{
int temp = array[n];
array[n] = array[position];
array[position] = temp;
}
}
}
/// <summary>
/// 在数组array中从下标i开始,查找最小数字的下标,并返回
/// </summary>
/// <param name="array"></param>
/// <param name="i"></param>
/// <returns></returns>
static int GetMinPosition(int[] array, int i)
{
int temp = array[i];
int position = i;
for (int n = i; n < array.Length; n++)
{
if (array[n] < temp)
{
temp = array[n];
position = n;
}
}
return position;
}
#endregion
主要有:简单选择排序、树型选择排序和堆排序。
简单选择排序
简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录 进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。例如:进行第i趟选择时,从当前候选记录中选出关键字最小的k号记录,并和第i个记录进行交 换
c#代码:
#region 简单选择排序
static void SimpleSelectSort(ref int[] array)
{
for (int n = 0; n < array.Length; n++)
{
int position = GetMinPosition(array, n);
if (n != position)
{
int temp = array[n];
array[n] = array[position];
array[position] = temp;
}
}
}
/// <summary>
/// 在数组array中从下标i开始,查找最小数字的下标,并返回
/// </summary>
/// <param name="array"></param>
/// <param name="i"></param>
/// <returns></returns>
static int GetMinPosition(int[] array, int i)
{
int temp = array[i];
int position = i;
for (int n = i; n < array.Length; n++)
{
if (array[n] < temp)
{
temp = array[n];
position = n;
}
}
return position;
}
#endregion
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。