麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

C#排序算法之快速排序

2020-01-24 03:44:39
字體:
來源:轉載
供稿:網友
快速排序實現:
復制代碼 代碼如下:

namespace QuickSort
{
class QuickSort
{
public static void Sort(int[] array)
{
DoSort(array,0, array.Length-1);
}
private static void DoSort( int[] array, int start, int end)
{
if( start < end)
{
int temp = Partition(array, start, end);
DoSort(array, start, temp-1);
DoSort(array, temp + 1, end);
}
}
private static int Partition(int[] array,int start, int end)
{
int index = start - 1;
for( var i=start; i< end; i++)
{
if( array[i] < array[end])
{
index++;
Swap(array, index, i);
}
}
Swap(array, index +1, end);
return index + 1;
}
private static void Swap(int[] array, int index1, int index2)
{
var temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
}
}

以上即為快速排序的代碼,這里有兩個重要的方法:
1、Partition:該方法是以數組的某個元素為參考元素(軸元素或主元素),將數組劃分成三個區域:
【<=參考元素】【參考元素】【>=參考元素】
2. DoSort:該方法會調用Partition將數組分區,并在新產生的子數組上遞歸調用最終達到有序的目的。
上面給出的代碼是以數組最后一個元素作為參考元素,這僅是參考元素選取的方式之一。我們也可以隨即選取數組的元素或者數組中間的元素作為參考元素。事實上參考元素的選取對快速排序的性能有很大影響。如果每次選取的參考元素能將數組分成相對均衡的區域,快速排序將成為最快的排序算法;但在另一種極端情形下,每次分成的數組都是1和n-1的關系,快速排序又會變的很慢。具體的性能數據后面再來討論研究。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 污片视频在线观看 | 久草在线资源福利站 | 欧美成人一区二区三区 | 亚洲人成在线播放网站 | 欧美一区二区片 | 色淫网站免费视频 | 成人在线视频免费 | av视在线 | 国产一区二区三区四区五区精品 | 久久青草热 | 久久狂草 | 国产成人精品免费视频大全最热 | 国产欧美日韩视频在线观看 | 中文字幕一区2区 | 精品中文字幕在线观看 | 91九色论坛 | 99精品在线观看 | 国产色视频一区 | 亚洲精品成人av在线 | 国产精品资源手机在线播放 | 免费视频一区 | 中文在线观看www | 久久精品综合视频 | 久久精品视频网址 | 亚洲欧美一区二区三区在线观看 | 欧美另类综合 | 黄视频网站免费 | 精品三级内地国产在线观看 | 九色 在线 | 久久国产精品久久久久久久久久 | 欧美成年人在线视频 | av大全在线免费观看 | 亚洲精品午夜电影 | 亚洲特黄a级毛片在线播放 久久久入口 | 亚洲国产综合在线观看 | 国产成人午夜高潮毛片 | 国产精品三级a三级三级午夜 | 午夜视频在线免费观看 | 亚洲第一黄色网 | 日韩a毛片免费观看 | a视频在线免费观看 |