冒泡排序 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");
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");
相关文章推荐
- 排序算法之冒泡排序的基本介绍和数组越界,以及交换2个变量的3种方法
- 交换排序之--冒泡排序
- 3种方式 两数交换
- 交换排序:冒泡排序
- 数据结构例程——交换排序之冒泡排序
- 【算法28】冒泡排序中的交换次数问题
- 交换类------冒泡排序
- 冒泡排序中数据交换的次数
- NOJ [1307] English Magic 字符串转化 3种操作 加1 减1 交换相邻字符
- 排序算法四:交换排序之冒泡排序
- 交换排序之--冒泡排序,快速排序
- 交换排序-冒泡排序
- 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)
- #笔记#圣思园 JavaSE 第35讲——冒泡排序、交换排序、快速排序、二分查找
- 排序算法大集锦_交换类――冒泡排序
- 排序算法(三)交换类排序:冒泡排序和快速排序
- 6.交换排序——冒泡排序
- 八大排序 -- 交换排序之【冒泡排序】
- PHP算法学习之“简单的交换排序”,“冒泡排序”以及“改进后的冒泡排序”
- 排序算法之交换排序——冒泡排序