您的位置:首页 > 其它

冒泡排序 3种交换

2014-09-13 12:53 288 查看
       int count = 0;
printf("输出数组元素个数:\n");
scanf("%d",&count);
int arr[count];
for (int i = 0; i < count; i++)
{
arr[i] = arc4random()%10000;
}
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - i - 1; j ++) {
if (arr[j] > arr[j + 1]) {
第一种:中间变量交换
// int temp =arr [j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
第二种:和差变量交换
// arr[j] = arr[j] + arr[j + 1];
// arr[j + 1] = arr [j] - arr [j + 1];
// arr[j] = arr[j] - arr[j + 1];

第三种:异或交换
arr[j + 1] = arr[j] ^ arr[j + 1];
arr[j] = arr [j] ^ arr [j + 1];
arr[j + 1] = arr[j]^ arr[j + 1];
}
}
}
for (int i = 0; i < count; i++) {

printf("%d\t",arr[i]);
}
printf("\n");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息