Brick Sort

#include <iostream>
using namespace std;
#define siz 1000000
int a[siz];
void swap(int a[], int i, int j)
{
    int temp=a[i];
    a[i]=a[j];
    a[j]=temp;
}
void Brick_sort(int a[], int n)
{
    bool sorted=false;
    while(sorted!=true)
    {
        sorted=true;
        for(int i=1;i<n-1;i+=2)
        {
            if(a[i]>a[i+1])
            {
                swap(a,i,i+1);
                sorted=false;
            }
        }
        for(int i=0;i<n-1;i+=2)
        {
            if(a[i]>a[i+1])
            {
                swap(a,i,i+1);
                sorted=false;
            }
        }
    }
    for(int i=0;i<n;i++) cout<<a[i]<<endl;
}
int main()
{
    int n;
    while(cin>>n)
    {
        for(int i=0;i<n;i++) cin>>a[i];
        Brick_sort(a,n);
    }
    return 0;
}

No comments:

Post a Comment