您的位置:首页 > 其它

算法-选择排序

2017-10-19 09:05 218 查看

实现选择排序算法

public static int[] Sort(int[] a)
{
int n = a.Length;
if (n == 0)
return null;
int min = 0;
for (int i = 0; i < n; i++)
{
min=i;//确定最小值所在的位置
for (int j = i + 1; j < n; j++)
{
if (a[j] < a[i])
{
min = j;
execArray(ref a, i, min);//将最小值所在的位置进行替换
}
}
}
return a;
}
public static void execArray(ref int[] a,int n,int  b)
{
int temp = a
;
a
= a[b];
a[b] = temp;
}


优缺点:

1、运行时间和输入无关。为了找出最小的元素而扫描一遍数组并不能为下次扫描提供什么有用的信息。这是选择排序的缺点。

2、数据移动是最小的。每次交换都会改变两个数组元素的值。

对于长度为N的数组,选择排序需要大约N*N/2次比较和N次交换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: