📄 qsort2.c
字号:
//快速排序的递归算法。
#define MAX 16 //元素个数的最大值
int R[MAX+1]={0,9,2,13,5,10,16,17,11,4,6,8,1,7}; //用数组来储存待排序元素,R[0]为辅助单元
QUICKSORT (int low,int high) reentrant //快速排序的递归算法
{
int i,j;
if (low>=high) return; //没有待排序区间,算法结束。
i = low ; j = high ;R[0] = R[i] ; //左右指针和基准值初始化
while ( i < j ) { //只要存在无序区间
while ( R[j] >= R[0] && i < j ) j--; //扩充大值区间
if (i<j) R[i++] = R[j]; //将小值记录移入小值区间
while ( R[i] <= R[0] && i < j ) i++; //扩充小值区间
if (i<j) R[j--] = R[i]; //将大值记录移入大值区间
}
R[i] = R[0]; //将基准记录放入最终位置
if (low<i-1) QUICKSORT (low,i-1); //如果小值区间存在,对其进行排序
if (i+1<high) QUICKSORT (i+1,high); //如果大值区间存在,对其进行排序
}
main ( )
{
QUICKSORT (1,13); //调用快速排序算法
while (1) ; //在这一行设置断点,中止程序运行,以便观察程序运行的结果
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -