 
void cocktailSort(int v[], int n) {
    int i, t;
    int trocou = 1; // 1:True, 0:False
    int inicio = 0;
    int fim    = n-1;
 
    while (trocou==1) {
        trocou = 0;
        for (i=inicio; i<fim; i++) {
            if (v[i] > v[i+1]) {
                t      = v[i];
                v[i]   = v[i+1];
                v[i+1] = t;
                trocou = 1;
            }
        }
        fim--;
 
        if (trocou==0)
            break;

        trocou = 0;
        for (i=fim-1; i>=inicio; i--) {
            if (v[i] > v[i+1]) {
                t      = v[i];
                v[i]   = v[i+1];
                v[i+1] = t;
                trocou = 1;
            }
        }
        inicio++;
    }
}
 
