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]
标签:选择排序
热门推荐
- MySQL中对varchar类型的排序
- nginx查看请求协议(Nginx之Http模块系列之autoindex模块的具体使用)
- thinkphp接口开发实例(ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解)
- mysql建立分区表指令(MySQL高级特性——数据表分区的概念及机制详解)
- mysqlsql按日期统计(sqlserver/mysql按天、按小时、按分钟统计连续时间段数据推荐)
- mysql记录binlog的方式(MySQL使用binlog日志做数据恢复的实现)
- 宝塔面板7.8.0软件商店打不开(宝塔BT面板专业版付费和免费版有什么区别?)
- mysql存储引擎的创建与修改(关于MySQL Memory存储引擎的相关知识)
- SQL Server的恢复模式
- redhat6.5安装mysql(Redhat7.3安装MySQL8.0.22的详细教程二进制安装)