?? 12-6.c
字號:
#include "stdio.h"
typedef int DataType;
void Swap(DataType *a,DataType *b)
{
DataType *t=a;
*a=*b;
*b=*t;
}
void quickSort(DataType a[], int l, int r)
{// 排序a [ l : r ], a[r+1] 有大值
int i = l, // 從左至右的游標
j = r + 1; // 從右到左的游標
DataType pivot = a[l];
if (l >= r)
return;
// 把左側>= pivot的元素與右側<= pivot 的元素進行交換
while (1) {
do {// 在左側尋找>= pivot 的元素
i=i+1;
} while (a[i] < pivot);
do {// 在右側尋找<= pivot 的元素
j = j - 1;
} while (a[j] > pivot);
if (i >= j)
break; // 未發現交換對象
Swap(&a[i],&a[j]);
}
// 設置p i v o t
a[l] = a[j];
a[j] = pivot;
quickSort(a, l, j-1); // 對左段排序
quickSort(a, j+1, r); // 對右段排序
}
void QuickSort(DataType*a, int n)
{// 對a[0:n-1] 進行快速排序
quickSort(a, 0, n-1);
}
void main()
{
DataType a[10];
//初始化a[10];
QuickSort(a,10);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -