void swap(int *a,int *b)
{
*a=*a^*b;
*b=*a^*b;
*a=*a^*b;
{
*a=*a^*b;
*b=*a^*b;
*a=*a^*b;
}
用该交换函数实现两个数的交换,要注意的问题是a,b两个数,不能
是从同一个地址上取数,不然会导致该数变为0的;
在做Partion快速算法中一个子函数时就出现了该问题。
int partion(int a[],int p,int r)
{
int key,i,j;
key=a[r];
j=p-1;
for(i=p;i<r;i++)
{
if(a[i]<key)
{
j++;
swap(&a[i],&a[j]);
}
}
j++;
swap(&a[j],&a[r]);
return j;
}