科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C#诠释常用排序算法

Visual C#诠释常用排序算法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

前段时间因为项目需要,做了个用来对数组排序的类,顺便把以前学过的几种排序算法用C

作者:李渭宁 来源:天极开发 2007年11月11日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
2. 选择排序

  2.1. 基本思想:

  每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

  2.2. 排序过程:

  【示例】:

初始关键字 [49 38 65 97 76 13 27 49]

第一趟排序后 13 [38 65 97 76 49 27 49]

第二趟排序后 13 27 [65 97 76 49 38 49]

第三趟排序后 13 27 38 [97 76 49 65 49]

第四趟排序后 13 27 38 49 [49 97 65 76]

第五趟排序后 13 27 38 49 49 [97 97 76]

第六趟排序后 13 27 38 49 49 76 [76 97]

第七趟排序后 13 27 38 49 49 76 76 [ 97]

最后排序结果 13 27 38 49 49 76 76 97

  2.3. 程序实现

/// <summary>
/// 选择排序
/// </summary>
/// <param name="dblArray"></param>

private static void SelectSort(ref double[] dblArray)
{
 for(int i =0 ; i< dblArray.Length; i++)
 {
  double MinValue = dblArray[i] ;
  int MinValueIndex = i ;
  for(int j = i; j< dblArray.Length; j++)
  {
   if(MinValue > dblArray[j] )
   {
    MinValue = dblArray[j] ;
    MinValueIndex = j ;
   }
  }
  ExChangeValue(ref dblArray[i], ref dblArray[MinValueIndex]);
 }
}

/// <summary>
/// 交换数据
/// </summary>
/// <param name="A"></param>
/// <param name="B"></param>

private static void ExChangeValue(ref double A , ref double B)
{
 double Temp = A ;
 A = B ;
 B = Temp ;
}
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章