我正在尝试一个简单的插入排序。但是当我使用按位操作时,我尝试的交换不起作用。
但是当我使用另一个临时变量时,交换工作。当我编译这段代码时,我总是得到一些额外的 0。
如何找出我的代码有什么问题?
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<algorithm>
using namespace std;
void swap(int* a, int* b)
{
*a=*a^*b;
*b=*a^*b;
*a=*a^*b;
}
int main(void)
{
int arr[size];
int i,j,min;
for(i=0; i<size; i++)
arr[i]=rand()%100;
for(i=0; i<size; i++)
printf("%d ",arr[i]);
putchar('\n');
for(i=0; i<size;i++)
{
min=i;
for(j=i+1;j<size;j++)
if(arr[j]<arr[min])
min=j;
swap(&arr[i],&arr[min]);
}
for(i=0; i<size; i++)
printf("%d ",arr[i]);
putchar('\n');
return 0;
}