- 论坛徽章:
- 0
|
switch(n){
case 1:return;
case 2:swap(a[x],a[j]); x is i;
break;
case 3:
for(;j<n;j++)
{
for(;i<n-j;i++)
{
if(a>a[i+1])
{
w=a;
a=a[j];
a[j]=w;
}
}
}
break;
default:
while(1){
while(a<p)
i++;
while(p<a[j])
j--;
if(i>=j) break;
if(i<j){
w=a;
a=a[j];
a[j]=w;
}
i++;
j--;
}
}
mutex_lock(&lock);
if(l<i-1)
{
r=i-1;
n=j-i+1;
printf("n is:%d\n",n);
p=a[l];
thr_create(NULL,NULL,qsort,NULL,NULL,&thr_id[id++]);
}
mutex_unlock(&lock);
// if(n==1) return;
l=l_temp;
r=r_temp;
mutex_lock(&lock);
if(j+1<r)
{
l=j+1;
p=a[l];
printf("n is:%d\n",n);
n=j-i+1;
thr_create(NULL,NULL,qsort,NULL,NULL,&thr_id[id++]);
}
mutex_unlock(&lock);
thr_exit(NULL);
}
[ 本帖最后由 wenqing_9115 于 2009-5-20 14:25 编辑 ] |
|