Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class SecuenciaEnteros{
- private:
- static const int TAMANIO = 100;
- int vector_privado[TAMANIO];
- int total_utilizados = 0;
- public:
- int TotalUtilizados(){
- return total_utilizados;
- }
- int Capacidad(){
- return TAMANIO;
- }
- void Aniade(int nuevo){
- if (total_utilizados < TAMANIO){
- vector_privado[total_utilizados] = nuevo;
- total_utilizados++;
- }
- }
- int Elemento(int pos){
- return vector_privado[pos];
- }
- void Ordena_por_Insercion(int izda, int dcha){
- int a_desplazar, j;
- for (int i = izda; i < dcha; i++){
- a_desplazar = vector_privado[i];
- for (j = izda; j > 0 && a_desplazar < vector_privado[j-1]; j--)
- vector_privado[j] = vector_privado[j-1];
- vector_privado[j] = a_desplazar;
- }
- }
- void Topk(int izda, int dcha, SecuenciaEnteros secuencia_a_ordenar){
- if (dcha >= total_utilizados){
- int inicio_vector = 0;
- secuencia_a_ordenar.Ordena_por_Insercion(inicio_vector, total_utilizados);
- }
- if (dcha < total_utilizados){
- secuencia_a_ordenar.Ordena_por_Insercion(izda, dcha);
- }
- }
- };
- int main(){
- SecuenciaEnteros secuencia;
- int entero;
- int k_izda, k_dcha;
- char terminador = '#';
- cout << "\nIntroduzca los datos de la secuencia de enteros: ";
- cin >> entero;
- while(entero != terminador){
- secuencia.Aniade(entero);
- cin >> entero;
- }
- SecuenciaEnteros secuencia_a_ordenar(secuencia);
- cout << "\nIntroduzca la posicion del vector desde la que desea ordenar: ";
- cin >> k_izda;
- cout << "\nIntroduzca la posicion del vector hasta la que desea ordenar: ";
- cin >> k_dcha;
- secuencia_a_ordenar.Topk(k_izda, k_dcha, secuencia_a_ordenar);
- cout << "\n La secuencia ordenada es: ";
- for (int i = 0; i < secuencia_a_ordenar.TotalUtilizados(); i++)
- cout << secuencia_a_ordenar.Elemento(i);
- cout << "\n\n\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement