Advertisement
AntonioVillanueva

Ordenacion de la Burbuja ,Bubble sort

Sep 2nd, 2018
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. // Metodo ordenacion de la Burbuja
  2. #include <iostream>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. /*----------------------------------------------------------------------*/
  7. /*-------------------------Declaraciones--------------------------------*/
  8. class Burbuja{
  9.     public:
  10.     Burbuja(vector<int> &datos);
  11.     virtual void ordena(); 
  12.    
  13.     private:
  14.     vector <int> & matriz;
  15.     bool mayor (int valorA,int valorB);
  16. };
  17. /*-------------------------Definiciones --------------------------------*/
  18. //Constructor de la clase ,inicializa la matriz
  19. Burbuja::Burbuja (vector<int> &datos):matriz(datos){}
  20. /*----------------------------------------------------------------------*/
  21. bool Burbuja::mayor (int valorA,int valorB){return valorA>valorB;}//puede ser <
  22. /*----------------------------------------------------------------------*/
  23. void Burbuja::ordena(){
  24.     for (size_t x=0;x<matriz.size()-1;x++){
  25.         for (size_t y=0;y<(matriz.size()-x-1) ;y++){//disminuye en funcion de x
  26.             if (mayor( matriz[y] , matriz[y+1] ) ){//comparacion clave
  27.                 swap(matriz[y],matriz[y+1]);//funcion de vector , swap
  28.             }
  29.         }
  30.     }  
  31. }
  32. /*----------------------------------------------------------------------*/
  33. /*----------------------------------------------------------------------*/
  34. int main (){
  35.     vector <int> matrizDeTest{3,4,2,1,6,5,7,8,1,1};//Matriz de prueba
  36.     Burbuja *instanciaQs= new Burbuja(matrizDeTest);//Crea una instancia de la clase inicializando
  37.    
  38.     for (auto i:matrizDeTest){cout <<i<<" ";}//Imprime datos de la matriz antes de ordenar
  39.    
  40.     cout <<endl;
  41.    
  42.     instanciaQs->ordena();//Ordena la matriz
  43.        
  44.     for (auto i:matrizDeTest){cout <<i<<" ";}//Imprime datos de la matriz ordenada
  45.  
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement