c#排序演算法

iDotNetSpace發表於2009-03-11

在學習新技術的同時,我們還應該時刻複習自己已學過的資料結構和經典演算法。 

一、最簡單的排序方法是氣泡排序方法。這種方法的基本思想是,將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個“氣泡”序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確。如果發現兩個相鄰元素的順序不對,即“輕”的元素在下面,就交換它們的位置。顯然,處理一遍之後,“最輕”的元素就浮到了最高位置;處理二遍之後,“次輕”的元素就浮到了次高位置。在作第二遍處理時,由於最高位置上的元素已是“最輕”元素,所以不必檢查。一般地,第i遍處理時,不必檢查第i高位置以上的元素,因為經過前面i-1遍的處理,它們已正確地排好序。時間複雜度 o(n^2);空間複雜度 o(1);比較次數 n(n+1)/2

程式碼:(vs2005中編譯通過)
using System;
using System.Collections.Generic;
using System.Text;

namespace SortMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] iArray =new int[]{ 1, 13, 5,7 ,2 ,10 };           
            BubbleSorter bSort = new BubbleSorter();
            bSort.Sort(iArray);
            for (int k = 0; k < iArray.Length; k++)
            {
                Console.Write("{0}",iArray[k]);
                Console.WriteLine();
            }

        }

    }

    public class BubbleSorter
    {
        public void Sort(int[] sortList)
        {
            int i, j, temp;           
            for (j= 1; j< sortList.Length;j++ )
            {
                for (i = 0; i < listArray.Length - j; i++)
                {
                    if (sortList[i] > sortList[i + 1])
                    {
                        temp = sortList[i];
                        sortList[i] = sortList[i + 1];
                        sortList[i + 1] = temp;
                    }
                }               
            }
                   
        }
    }

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-566854/,如需轉載,請註明出處,否則將追究法律責任。

相關文章