C#选择排序
类别:编程学习 浏览量:851
时间:2014-7-24 C#选择排序
C#选择排序一、选择排序基本思想
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
/// <summary>
/// selection sort
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="array"></param>
/// <param name="left"></param>
/// <param name="right"></param>
public static void SelectionSort<T>(T[] array) where T : IComparable
{
int length = array.Length;
for (int i = 0; i < length; i++)
{
T min = array[i];
int minIndex = i ;
for (int j = i+1; j < length; j++)
{
if (min.CompareTo(array[j])>0)
{
min = array[j];
minIndex = j;
}
}
if (minIndex != i)
{
array[minIndex] = array[i];
array[i] = min;
}
}
}
测试代码
int[] array = new int[] {43,23,80,15,789,27,90,69,66,158,45,32,1,22,77,66,44};
Console.WriteLine("before selection sort");
foreach (int i in array)
{
Console.Write(i+"->");
}
Console.WriteLine();
SortHelper.SelectionSort<int>(array);
Console.WriteLine("after selection sort");
foreach (int i in array)
{
Console.Write(i + "->");
}
Console.WriteLine();
Console.Read();
六、C# 选择排序排序过程
初始关键字 [49 38 65 97 76 13 27 49]
标签:选择排序
热门推荐
- poll?transport=longpoll&connection...连接的作用
- 织梦列表页调用文章怎么调(详解织梦手机端搜索时候直接调用search_m.htm手机站页面的办法)
- jquery实现在光标位置插入内容
- docker 挂载目录权限(docker windows10 共享目录挂载失败的解决方案)
- linq中let
- python实现删除列表重复元素功能(Python实现删除排序数组中重复项的两种方法示例)
- docker自动执行镜像(docker实现重新打tag并删除原tag的镜像)
- laravel模块教程(Laravel框架创建路由的方法详解)
- pyinstaller打包后为什么报错(Pyinstaller打包.py生成.exe的方法和报错总结)
- 电脑屏幕截图保存在哪