quick sort
1
using System;
2
namespace MyQSort{
3
public class QSort //可以写成static public class QSort
4
{
5
private static int[] toBeSort;
6
private static void swap(int a,int b){
7
int c;
8
c=toBeSort[a];
9
toBeSort[a]=toBeSort[b];
10
toBeSort[b]=c;
11
}
12
///<sumary>
13
///分割函数
14
///</sumary>
15
private static int Partition(int low,int high){
16
int pivoKey=toBeSort[low];
17
while(low<high){
18
while(low<high && (toBeSort[high] >= pivoKey)) --high;
19
swap(low,high);
20
while(low<high && (toBeSort[low] <= pivoKey)) ++low;
21
swap(low,high);
22
}
23
return low;
24
}
25
private static void QQSort(int low,int high){
26
int pivoLoc;
27
if(low<high){
28
pivoLoc=Partition(low,high);
29
QQSort(low,pivoLoc-1);
30
QQSort(pivoLoc+1,high);
31
}
32
}
33
public static int[] QuickSort(int [] a){
34
toBeSort=a;
35
QQSort(0,toBeSort.Length-1);
36
return toBeSort;
37
}
38![](/Images/OutliningIndicators/InBlock.gif)
39
};
40
}
41![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
41
![](/Images/OutliningIndicators/None.gif)