Heim > Backend-Entwicklung > C++ > Hauptteil

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

WBOY
Freigeben: 2023-09-14 17:53:02
nach vorne
1231 人浏览过

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

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

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

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

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

Input: a[]={3,5,7,6,1,4,2}
Output: 1 2 3 4 5 6 7
Nach dem Login kopieren

解释

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

示例

#include 
#include 
#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;
         }
      }
   }
}
Nach dem Login kopieren

输出

1234567
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!