快速排序算法-c#版

来源:互联网 发布:短线长线知乎 编辑:程序博客网 时间:2024/05/17 08:52
 


大多数程序员在写排序算法的时候,都会采用冒泡算法,为什么了?因为这个算法最简单,最容易理解,也最容易写。

但是,冒泡算法效率并不高,今天就写一个c#的快速排序算法。

废话不多说,先直接上代码:

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


 

 

原创粉丝点击