程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#實現所有經典排序算法

C#實現所有經典排序算法

編輯:C#入門知識

1、選擇排序

選擇排序
class SelectionSorter   
{   
    private int min;   
    public void Sort(int[] arr)   
    {   
        for (int i = 0; i < arr.Length - 1; ++i)   
        {   
            min = i;   
            for (int j = i + 1; j < arr.Length; ++j)   
            {   
                if (arr[j] < arr[min])   
                    min = j;   
            }   
            int t = arr[min];   
            arr[min] = arr[i];   
            arr[i] = t;   
        }   
    }   
    static void Main(string[] args)   
    {   
        int[] array = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };   
        SelectionSorter s = new SelectionSorter();   
        s.Sort(array);   
        foreach (int m in array)   
            Console.WriteLine("{0}", m);   
    }   
}

2、冒泡排序

冒泡排序
class EbullitionSorter   
{   
    public void Sort(int[] arr)   
    {   
        int i, j, temp;   
        bool done = false;   
        j = 1;   
        while ((j < arr.Length) && (!done))//判斷長度   
        {   
            done = true;   
            for (i = 0; i < arr.Length - j; i++)   
            {   
                if (arr[i] > arr[i + 1])   
                {   
                    done = false;   
                    temp = arr[i];   
                    arr[i] = arr[i + 1];//交換數據   
                    arr[i + 1] = temp;   
                }   
            }   
            j++;   
        }   
    }   
  
    static void Main(string[] args)   
    {   
        int[] array = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };   
        EbullitionSorter e = new EbullitionSorter ();   
        e.Sort(array);   
        foreach (int m in array)   
            Console.WriteLine("{0}", m);   
  
    }   
}

3、快速排序

快速排序
class QuickSorter   
{   
    private void swap(ref int l, ref int r)   
    {   
        int temp;   
        temp = l;   
        l = r;   
        r = temp;   
    }   
    public void Sort(int[] list, int low, int high)   
    {   
        int pivot;//存儲分支點   
        int l, r;   
        int mid;   
        if (high <= low)   
            return;   
        else if (high == low + 1)   
        {   
            if (list[low] > list[high])   
                swap(ref list[low], ref list[high]);   
            return;   
        }   
        mid = (low + high) >> 1;   
        pivot = list[mid];   
        swap(ref list[low], ref list[mid]);   
        l = low + 1;   
        r = high;   
        do  
        {   
        while (l <= r

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