📄 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 + -