奇偶排序(砖排序)的C / C ++程序?
奇偶剑也称为砖排序是一种类似的排序技术,例如气泡排序。将该分类技术细分为2个阶段,即奇数阶段和偶数阶段。这两个阶段在每次迭代时同时进行,直到对所有元素进行分类为止。
此编程技术的奇数阶段用作冒泡排序,但仅在具有奇数索引的元素上起作用。
同样,偶数阶段仅对具有偶数索引的元素起作用。
为了使这个概念更清楚,让我们举个例子:
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 ++程序? 的全部内容, 来源链接: utcz.com/z/353417.html