Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class SecuenciaEnteros{
  5. private:
  6.     static const int TAMANIO = 100;
  7.     int vector_privado[TAMANIO];
  8.     int total_utilizados = 0;
  9. public:
  10.     int TotalUtilizados(){
  11.         return total_utilizados;
  12.     }
  13.    
  14.     int Capacidad(){
  15.         return TAMANIO;
  16.     }
  17.  
  18.     void Aniade(int nuevo){
  19.         if (total_utilizados < TAMANIO){
  20.             vector_privado[total_utilizados] = nuevo;
  21.             total_utilizados++;
  22.         }
  23.     }
  24.    
  25.     int Elemento(int pos){
  26.         return vector_privado[pos];
  27.     }
  28.    
  29.     void Ordena_por_Insercion(int izda, int dcha){
  30.         int a_desplazar, j;
  31.        
  32.         for (int i = izda; i < dcha; i++){
  33.             a_desplazar = vector_privado[i];
  34.            
  35.             for (j = izda; j > 0 && a_desplazar < vector_privado[j-1]; j--)
  36.                 vector_privado[j] = vector_privado[j-1];
  37.                
  38.             vector_privado[j] = a_desplazar;
  39.         }
  40.     }
  41.    
  42.     void Topk(int izda, int dcha, SecuenciaEnteros secuencia_a_ordenar){
  43.         if (dcha >=  total_utilizados){
  44.             int inicio_vector = 0;
  45.             secuencia_a_ordenar.Ordena_por_Insercion(inicio_vector, total_utilizados);
  46.         }
  47.        
  48.         if (dcha < total_utilizados){
  49.             secuencia_a_ordenar.Ordena_por_Insercion(izda, dcha);
  50.         }
  51.     }
  52.                
  53. };
  54.  
  55. int main(){
  56.     SecuenciaEnteros secuencia;
  57.     int entero;
  58.     int k_izda, k_dcha;
  59.     char terminador = '#';
  60.    
  61.     cout << "\nIntroduzca los datos de la secuencia de enteros: ";
  62.     cin >> entero;
  63.     while(entero != terminador){
  64.         secuencia.Aniade(entero);
  65.         cin >> entero;
  66.     }
  67.    
  68.     SecuenciaEnteros secuencia_a_ordenar(secuencia);
  69.    
  70.     cout << "\nIntroduzca la posicion del vector desde la que desea ordenar: ";
  71.     cin >> k_izda;
  72.     cout << "\nIntroduzca la posicion del vector hasta la que desea ordenar: ";
  73.     cin >> k_dcha;
  74.    
  75.     secuencia_a_ordenar.Topk(k_izda, k_dcha, secuencia_a_ordenar);
  76.    
  77.     cout << "\n La secuencia ordenada es: ";
  78.     for (int i = 0; i < secuencia_a_ordenar.TotalUtilizados(); i++)
  79.         cout << secuencia_a_ordenar.Elemento(i);
  80.        
  81.     cout << "\n\n\n";
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement