#include <iostream>
#include <iomanip>
using namespace std;
void swap(int&a, int&b)
{
int t = a; a = b; b = t;
}
void BubbleSort(int * a, int n)
{
for(int b = 0, e = n-1; b != e; ++b)
for(int k = e, j = k--; j != b; j = k--)
if (a[j] < a[k]) swap(a[j],a[k]);
}
void oddBubbleSort(int * a, int n)
{
for(int b = 0, e = ((n-1)/2)*2; b != e; b+=2)
for(int k = e-2, j = e; j != b; j = k, k -= 2)
if (a[j] < a[k]) swap(a[j],a[k]);
}
int main(int argc, char * argv[])
{
int a[] = { 9,8,7,6,5,4,3,2,1,0};
oddBubbleSort(a,10);
for(int i: a) cout << i << " ";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHN3YXAoaW50JmEsIGludCZiKQp7CiAgICBpbnQgdCA9IGE7IGEgPSBiOyBiID0gdDsKfQoKdm9pZCBCdWJibGVTb3J0KGludCAqIGEsIGludCBuKQp7CiAgICBmb3IoaW50IGIgPSAwLCBlID0gbi0xOyBiICE9IGU7ICsrYikKICAgICAgICBmb3IoaW50IGsgPSBlLCBqID0gay0tOyBqICE9IGI7IGogPSBrLS0pCiAgICAgICAgICAgIGlmIChhW2pdIDwgYVtrXSkgc3dhcChhW2pdLGFba10pOwp9CgoKdm9pZCBvZGRCdWJibGVTb3J0KGludCAqIGEsIGludCBuKQp7CiAgICBmb3IoaW50IGIgPSAwLCBlID0gKChuLTEpLzIpKjI7IGIgIT0gZTsgYis9MikKICAgICAgICBmb3IoaW50IGsgPSBlLTIsIGogPSBlOyBqICE9IGI7IGogPSBrLCBrIC09IDIpCiAgICAgICAgICAgIGlmIChhW2pdIDwgYVtrXSkgc3dhcChhW2pdLGFba10pOwp9CgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10pCnsKICAgIGludCBhW10gPSB7IDksOCw3LDYsNSw0LDMsMiwxLDB9OwogICAgb2RkQnViYmxlU29ydChhLDEwKTsKCiAgICBmb3IoaW50IGk6IGEpIGNvdXQgPDwgaSA8PCAiICI7Cn0KCg==