15,选择排序
1,假设第一项值最小
2,每轮找出最小值,和对应下标
3,如果最小值比第一项目小交换位置
C#代码实现:
using System;
namespace 数据结构
{
public class SelectSort
{
static int[] sortArray = { 2, 501, 403, 708, 900, 1 };
public static void Main(string[] args)
{
Console.WriteLine("排序之前");
foreach (var m in sortArray)
{
Console.Write(m+" ");
}
Select(sortArray);
Console.WriteLine();
Console.WriteLine("排序之后");
foreach (var m in sortArray)
{
Console.Write(m+" ");
}
}
//选择排序,从小到大
public static void Select(int[] array)
{
for (int i = 0; i < array.Length - 1; i++)
{
//最小值下标
int minIndex = i;
//最小值
int min = array[minIndex];
for (int j = i + 1; j < array.Length; j++)
{
if (min > array[j])
{
minIndex = j;
min = array[j];
}
}
//交换
if (min < array[i])
{
array[minIndex] = array[i];
array[i] = min;
}
}
}
}
}


浙公网安备 33010602011771号