//升序
void qsort(int date[],int l,int r)
{
if(l==r)//如果 当前数组段只有一个一个数 返回;
return;
int i=l,j=r;//初始化i,j为当前数组段的左端和右端
int y = date[l];//确定当前 数组段的基点值
while(i<j)//当i==j时表示不能从右边找到比基点小的值 那么就要退出 并在后面进行 基点和i j相遇点
//的值交换
{
//两个while顺序很重要
while(i<j&&date[j]>=y)首先从右边找到一个比基点小的
j--;
while(i<j&&date[i]<=y)再从左边找到一个比基点大的
i++;
if(i<j)//当i j 还没有相遇时进行交换值
{
int temp = date[i];
date[i] = date[j];
date[j] = temp;
}
}
date[l] = date[j];
date[j] = y;
把i j相遇点的值与基点值进行交换 并分成两个数组数组段
qsort(date,l,j);//
qsort(date,j+1,r);
}
表达真是一件难事,,,!