当前位置:编程学习 > C#/ASP.NET >>

快速排序算法-c#版

[csharp]  
   
 
大多数程序员在写排序算法的时候,都会采用冒泡算法,为什么了?因为这个算法最简单,最容易理解,也最容易写。
 
但是,冒泡算法效率并不高,今天就写一个c#的快速排序算法。
 
废话不多说,先直接上代码:
 
[csharp]  
using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace QuickSortDemo  
{  
    class QuickSort  
    {  
        public void Sort(int[] arr)  
        {  
            sortMethd(arr, 0, arr.Length - 1);  
        }  
        private void sortMethd(int[] arr, int left, int right)  
        {  
            if (left < right)  
            {  
                int key = arr[(left + right) / 2];  
                int i = left-1 ;  
                int j = right + 1;  
                while (true)  
                {  
                    /* 
                    这里是关键的地方                   * 
                      
                      
                     */  
                    while (arr[++i] < key ) ;  
                    while (arr[--j] > key ) ;  
                    if (i >= j)  
                    {  
                        break;  
                    }  
                    swap(arr, i, j);  
                }  
                sortMethd(arr, left, i - 1);  
                sortMethd(arr, j+1 , right);  
            }  
        }  
        private void swap(int[] arr, int i, int j)  
        {  
            int temp = arr[i];  
            arr[i] = arr[j];  
            arr[j] = temp;  
        }  
    }  
}  
 
 
补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,