首页 > 后端开发 > C++ > 正文

奇偶排序(砖排序)的C/C++程序

WBOY
发布: 2023-09-14 17:53:02
转载
1372 人浏览过

奇偶排序(砖排序)的C/C++程序

奇偶排序算法也被称为砖块排序,它是一种类似于冒泡排序的排序技术。这种排序技术分为两个阶段:奇数阶段和偶数阶段,这两个阶段在每次迭代中同时进行,直到所有元素都被排序。

这个编程技术的奇数阶段类似于冒泡排序,但只对具有奇数索引的元素进行排序。

同样地,偶数阶段只对具有偶数索引的元素进行排序。

为了更清楚地说明这个概念,让我们举个例子:

Input: a[]={3,5,7,6,1,4,2}
Output: 1 2 3 4 5 6 7
登录后复制

解释

偶奇排序,也称为砖排序,是一种简单的排序技术,设计时考虑了并行处理。它使用比较来对其元素进行排序。比较是在所有奇偶对的年龄和元素之间进行的。如果任何一对顺序错误,则交换顺序以使其正确。这个过程一直持续到列表被排序。由于它是为并行处理开发的,它可以每个处理器处理一个值,并且两个过程同时进行交换-比较类型的操作。这个算法最初是在这样的处理器上提出的,并且被证明在这样的处理器上是高效的。

示例

#include <stdio.h>
#include <math.h>
#define MAX 7
void swap(int *,int *);
void oddeven_sort(int *);
int main() {
   int a[]={3,5,7,6,1,4,2}, i;
   oddeven_sort(a);
   for (i = 0;i < MAX;i++) {
      printf(" %d", a[i]);
   }
}
void swap(int * x, int * y) {
   int temp;
   temp = *x;
   *x = *y;
   *y = temp;
}
void oddeven_sort(int * x) {
   int sort = 0, i;
   while (!sort) {
      sort = 1;
      for (i = 1;i < MAX;i += 2) {
         if (x[i] > x[i+1]) {
            swap(&x[i], &x[i+1]);
            sort = 0;
         }
      }
      for (i = 0;i < MAX - 1;i += 2) {
         if (x[i] > x[i + 1]) {
            swap(&x[i], &x[i + 1]);
            sort = 0;
         }
      }
   }
}
登录后复制

输出

1234567
登录后复制

以上是奇偶排序(砖排序)的C/C++程序的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板