急!!!如何记录快速排序的程序比较次数和交换的次数?!!

来源:百度知道 编辑:UC知道 时间:2024/06/30 08:33:14
void quicksort(int a[],int left,int right)
{
int p,i=left,j=right;
p=a[i];

while(i<j)
{
while(a[j]>p && j>left){j--;}if(i<j){a[i]=a[j];i++;}
while(a[i]<p && i<right){i++;}if(i<j){a[j]=a[i];j--;}

a[i]=p;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}

}

a[i]=p;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}
cout<<chgtimes<<" "<<cmptimes<<endl;

}

如果我声明了静态变量static itn aa=0,bb=0,请问我该在哪添加aa++和bb++?

用全局变量吧 用STATIC无法完成
void quicksort(int a[],int left,int right)
{
int p,i=left,j=right;
p=a[i];

while(i<j)
{
while(a[j]>p && j>left){bb++;j--;}if(i<j){a[i]=a[j];i++;} //BB是比较次数
while(a[i]<p && i<right){bb++;}if(i<j){a[j]=a[i];j--;}
aa++;//交换次数
a[i]=p;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}

}

a[i]=p;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}
cout<<chgtimes<<" "<<cmptimes<<endl;

}