Bubble sort in C++

    
    /*ordinamento decrescente del vettore: */
    for(int j=0;j<n-1;j++)
    {
        
        for(int i=0;i<n-1;i++)
        {
            if(vettore[i]<vettore[i+1])
            {
                  /*swap*/
                  int tmp=vettore[i];
                  vettore[i]=vettore[i+1];
                  vettore[i+1]=tmp;
                  
            }
           
        }
        
    }
    
    
    
    
    
    
    
    
    /*ordinamento ottimizzato decrescente del vettore: */
    for(int j=0;j<n-1;j++)
    {
        /*basta arrivare fino a n-j-1, perchè ad ogni fine
         ciclo j, ho sempre almeno un elemento ordinato*/
        for(int i=0;i<n-j-1;i++)
        {
            if(vettore[i]<vettore[i+1])
            {
                  /*swap*/
                  int tmp=vettore[i];
                  vettore[i]=vettore[i+1];
                  vettore[i+1]=tmp;
                  
            }
           
        }
        
    }
    
    bool ci_sono_scambi=false;
    /*ordinamento super ottimizzato decrescente del vettore: */
    while(ci_sono_scambi)
    {
        ci_sono_scambi=false;
        
        /*se trova uno scambio mette ci_sono_scambi a true
         perchè potrebbe essercene un altro dopo*/
        for(int i=0;i<n-1;i++)
        {
            if(vettore[i]<vettore[i+1])
            {
                  /*swap*/
                  int tmp=vettore[i];
                  vettore[i]=vettore[i+1];
                  vettore[i+1]=tmp;
                
                  ci_sono_scambi=true;
                  
            }
           
        }
        
    }