#include<stdio.h>
//#include<algorithm>
using namespace std;
const int N = 1000000;
int a[N];
int n;
void swap(int &a,int &b){
printf("a = %d, b = %d",a,b);
a^=b^=a^=b;
printf("-> a = %d, b = %d\n",a,b);
}
void qs(int l,int r){
if(l>=r)return;
swap(a[l],a[(l+r)/2]);
int i = l,j = r;
int p = a[l];
while(i<j){
while(i<j&&a[j]>=p)j--;
while(i<j&&a[i]<=p)i++;
swap(a[i],a[j]);
}
swap(a[l],a[j]);
qs(l,i);
qs(i+1,r);
}
int main(){
scanf("%d",&n);
for(int i =0;i<n;i++)scanf("%d",&a[i]);
qs(0,n-1);
for(int i = 0;i<n;i++)printf("%d ",a[i]);
}
在这段快排代码中
void swap(int &a,int &b){
printf("a = %d, b = %d",a,b);
a^=b^=a^=b;
printf("-> a = %d,