1. 程式人生 > >幾種常見排序演算法及其效率

幾種常見排序演算法及其效率

介紹了幾種交換排序的演算法

1。氣泡排序(Bubble Sort)是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。

Code:

using System;  
usingSystem.Collections.Generic;  
namespaceCom.Colobu.Algorithm.Exchange  
{  
    ///<summary>  
    ///氣泡排序是這樣實現的:  
   ///  
    /// 1.首先將所有待排序的數字放入工作列表中。  
    /// 2.從列表的第一個數字到倒數第二個數字,逐個檢查:若某一位上的數字大於他的下一位,則將它與它的下一位交換。  
    /// 3.重複2號步驟(倒數的數字加1。例如:第一次到倒數第二個數字,第二次到倒數第三個數字,依此類推...),直至再也不能交換。  
   ///   
    ///平均時間複雜度:O(n^2)  
    ///Stability:Yes  
    ///</summary>  
    public classBubbleSortAlgorithm  
   {  
       public static voidBubbleSort<T>(IList<T>szArray) whereT:IComparable  
       {  
           int i;  
           int j;   
           T temp; //交換變數  
           bool swapped = false;  
           for (i = szArray.Count - 1; i >= 0;i--)  
           {  
               for (j = 1; j <= i;j++)  
               {  
                   if (szArray[j - 1].CompareTo(szArray[j]) >0)  
                   {