[mw_shl_code=c,true]/*quicksort --- 快速排序法*/
#include <stdio.h>
int a[101], n; //定义全局变量,这两个变量需要在子函数中使用
void quicksort (int left, int right) //quicksort:快速法
{
int i, j, t, temp; //temp: 临时雇员
if (left > right) //左边士兵探测的位置超过右边士兵的位置,则返回
return;
temp = a[left]; //temp 中存的就是基准数
i = left;
j = right;
while (i != j)
{
//顺序很重要,要先从右边开始找
while (a[j] >= temp && i<j)
j--;
//再找左边的
while (a <= temp && i<j)
i++;
//交换两个数在数组中的位置
if (i < j)
{ t = a; a = a[j]; a[j] = t; }
}
a[left] = a; //最终将基准数归位
a = temp; //设定下一个基准数
quicksort (left, i-1);//继续处理左边的,这是一个函数递归
quicksort (i+1, right);//继续处理右边的,这是一个函数递归
}
[/mw_shl_code] |