벽돌 정렬이라고도 하는 홀수 짝수 칼은 버블 정렬과 유사한 정렬 기술입니다. 이 정렬 기술은 홀수 단계와 짝수 단계의 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