Heim > Backend-Entwicklung > C++ > Hauptteil

C/C++-Programm zur Paritätssortierung (Brick-Sortierung)

WBOY
Freigeben: 2023-09-14 17:53:02
nach vorne
1372 Leute haben es durchsucht

C/C++-Programm zur Paritätssortierung (Brick-Sortierung)

Der Paritätssortierungsalgorithmus wird auch Brick-Sortierung genannt, eine Sortiertechnologie ähnlich der Blasensortierung. Diese Sortiertechnik ist in zwei Phasen unterteilt: die ungerade Phase und die gerade Phase, die in jeder Iteration gleichzeitig ausgeführt werden, bis alle Elemente sortiert sind.

Die ungerade Phase dieser Programmiertechnik ähnelt der Blasensortierung, sortiert jedoch nur Elemente mit ungeraden Indizes.

Ebenso sortiert die gerade Phasenur Elemente mit geraden Indizes.

Um dieses Konzept klarer zu veranschaulichen, nehmen wir ein Beispiel:

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

Erläuterung

Die gerade-ungerade Sortierung, auch Brick-Sortierung genannt, ist eine einfache Sortiertechnik, die auf Parallelverarbeitung ausgelegt ist. Es verwendet Vergleiche, um seine Elemente zu sortieren. Für alle ungerade-gerade-Paare werden Alters- und Elementvergleiche durchgeführt. Wenn ein Paar in der falschen Reihenfolge ist, tauschen Sie die Reihenfolge aus, um es richtig zu machen. Dieser Vorgang wird fortgesetzt, bis die Liste sortiert ist. Da es für die Parallelverarbeitung entwickelt wurde, kann es einen Wert pro Prozessor verarbeiten und beide Prozesse führen gleichzeitig Operationen vom Typ Swap-Compare aus. Dieser Algorithmus wurde ursprünglich für solche Prozessoren vorgeschlagen und erwies sich auf solchen Prozessoren als effizient.

Beispiel

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

Ausgabe

1234567
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonC/C++-Programm zur Paritätssortierung (Brick-Sortierung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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