程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Visual C#常用排序算法(2)

Visual C#常用排序算法(2)

編輯:關於C語言

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 ;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved