C/Visual C - Ordenar un vector usando un heap???Please

 
Vista:

Ordenar un vector usando un heap???Please

Publicado por Cristian (3 intervenciones) el 25/05/2001 09:49:54
hola

Debo realizar un programa que reciva numeros por teclado y los guerde en un vector, luego este vector debo ordearlo ascendentemente usando un heap, con sus respectivos operadores, los cuales desconosco

Es un trabajo para la Universidad, y la verdad por enfermedad no he podido aprender este lenguaje, si me ayudan, aunque solo fuera con una parte, se los agradecere infinitamente.

Suerte
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Programa de ordenamiento de números con heap

Publicado por Alejandro (913 intervenciones) el 25/09/2024 19:23:35
Hola, Cristian.

Lamento escuchar que estás enfermo y espero que te recuperes pronto. Estoy aquí para ayudarte con tu programa en C++.

Para comenzar, necesitarás crear un vector y luego recibir los números por teclado para almacenarlos en ese vector. Puedes hacerlo utilizando un bucle y la función `push_back()` del vector. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
 
int main() {
    std::vector<int> numeros;
    int numero;
 
    std::cout << "Ingrese los números (ingrese -1 para finalizar):" << std::endl;
 
    while (true) {
        std::cin >> numero;
 
        if (numero == -1) {
            break;
        }
 
        numeros.push_back(numero);
    }
 
    // Aquí puedes continuar con el código para ordenar el vector utilizando un heap
 
    return 0;
}

Una vez que hayas almacenado los números en el vector, puedes proceder a ordenarlo ascendentemente utilizando un heap. Para hacer esto, puedes utilizar la función `make_heap()` para convertir el vector en un heap, y luego utilizar la función `sort_heap()` para ordenar el vector. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <vector>
#include <algorithm>
 
int main() {
    std::vector<int> numeros;
    int numero;
 
    std::cout << "Ingrese los números (ingrese -1 para finalizar):" << std::endl;
 
    while (true) {
        std::cin >> numero;
 
        if (numero == -1) {
            break;
        }
 
        numeros.push_back(numero);
    }
 
    std::make_heap(numeros.begin(), numeros.end());
    std::sort_heap(numeros.begin(), numeros.end());
 
    std::cout << "Números ordenados ascendentemente:" << std::endl;
 
    for (int num : numeros) {
        std::cout << num << " ";
    }
 
    std::cout << std::endl;
 
    return 0;
}

Espero que esto te ayude a comenzar con tu programa. ¡Buena suerte con tu trabajo universitario!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar