快速排序(quick sorting 又稱 劃分排序),是對氣泡排序的改進。原理: 從待排序區間(a[0]到a[n-1])選取第一個為基準元素。通過從兩端向中間順序進行比較和交換,使前面單元中隻包含比 基準元素小的數。....
static void qsort(int[] arr, int s, int e) {
int i = s, j = e + 1;
int t = arr[s];
do {
do i++; while(arr[i]<t && i<e );
do j--; while(arr[j]>t && j>s);
if (i < j) {
swap(ref arr[i],ref arr[j]);
}
} while (i < j);
swap(ref arr[s], ref arr[j]); //一次比較完成 (基準 與 j 位置的元素交換)
if(s<j-1) qsort(arr, s, j - 1);
if(j+1<e) qsort(arr, j+1,e );
}
static void swap(ref int x,ref int y)
{
int t = x;
x = y;
y = t;