#include <stdio.h>
void oddEvenSort(int arr[], int n) {
int sorted = 0;
while (!sorted) {
sorted = 1;
// Odd phase
for (int i = 1; i < n - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
sorted = 0;
}
}
// Even phase
for (int i = 0; i < n - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
sorted = 0;
}
}
}
}
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
}
}
int main() {
int arr[] = {34, 2, 10, 19, 3, 7, 25};
int n = sizeof(arr) / sizeof(arr[0]);
printArray(arr, n);
oddEvenSort(arr, n);
printArray(arr, n);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIG9kZEV2ZW5Tb3J0KGludCBhcnJbXSwgaW50IG4pIHsKICAgIGludCBzb3J0ZWQgPSAwOwogICAgd2hpbGUgKCFzb3J0ZWQpIHsKICAgICAgICBzb3J0ZWQgPSAxOwoKICAgICAgICAvLyBPZGQgcGhhc2UKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG4gLSAxOyBpICs9IDIpIHsKICAgICAgICAgICAgaWYgKGFycltpXSA+IGFycltpICsgMV0pIHsKICAgICAgICAgICAgICAgIGludCB0ZW1wID0gYXJyW2ldOwogICAgICAgICAgICAgICAgYXJyW2ldID0gYXJyW2kgKyAxXTsKICAgICAgICAgICAgICAgIGFycltpICsgMV0gPSB0ZW1wOwogICAgICAgICAgICAgICAgc29ydGVkID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gRXZlbiBwaGFzZQogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkgKz0gMikgewogICAgICAgICAgICBpZiAoYXJyW2ldID4gYXJyW2kgKyAxXSkgewogICAgICAgICAgICAgICAgaW50IHRlbXAgPSBhcnJbaV07CiAgICAgICAgICAgICAgICBhcnJbaV0gPSBhcnJbaSArIDFdOwogICAgICAgICAgICAgICAgYXJyW2kgKyAxXSA9IHRlbXA7CiAgICAgICAgICAgICAgICBzb3J0ZWQgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIHByaW50QXJyYXkoaW50IGFycltdLCBpbnQgbikgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkICIsIGFycltpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7Cn0KCmludCBtYWluKCkgewogICAgaW50IGFycltdID0gezM0LCAyLCAxMCwgMTksIDMsIDcsIDI1fTsKICAgIGludCBuID0gc2l6ZW9mKGFycikgLyBzaXplb2YoYXJyWzBdKTsKCiAgICBwcmludGYoIk9yaWdpbmFsIGFycmF5OiAiKTsKICAgIHByaW50QXJyYXkoYXJyLCBuKTsKCiAgICBvZGRFdmVuU29ydChhcnIsIG4pOwoKICAgIHByaW50ZigiU29ydGVkIGFycmF5OiAiKTsKICAgIHByaW50QXJyYXkoYXJyLCBuKTsKCiAgICByZXR1cm4gMDsKfQ==