top of page

Semana 15

Practica en Clase y Tarea (Case 4 y 5)

#include <iostream>

#include <math.h>

#include <cstdlib>

using namespace std;

int op, n1, i, j,n,c,Aux;

int A[100];

float SUMAR;

int arr[] = {12, 11, 13, 5, 6, 7};

int n2 = sizeof(arr) / sizeof(arr[0]);

int numeros[] = {1, 2, 3, 4, 5};

int inf, sup, mitad, dato = 3;

char band = 'F';

// Declaraciones de metodos

void Busqueda(),Burbuja(),heapify(int arr[], int size, int i),heapSort(int arr[], int size);

void printArray(int arr[], int size);

void bbinaria(),Oseleccion();

 

int main()

{

    do

    {

        do

        {

            cout << "\n******************Menu de Opciones*******************\n";

            cout << "\nIngrese la opcion a realizar: \n";

            cout << "\n[1] = Busqueda Secuencial \n";

            cout << "\n[2] = Ordenamiento Burbuja \n";

            cout << "\n[3] = Ordenamiento por Monticulos\n";

            cout << "\n[4] = Busqueda Binaria\n";

            cout << "\n[5] = Ordenamiento por Seleccion";

            cout << "\nIngrese su opcion: ";

            cin >> op;

            cout << "\n*************************************************\n";

            if (op != 1 && op != 2 && op != 3 && op != 4 && op != 5)

            {

                cout << "Opcion Incorrecta";

            }

        } while (op != 1 && op != 2 && op != 3 && op != 4 && op != 5);

        switch (op)

        {

        case 1:

            cout << "------------------------------";

            cout << "\nBusqueda Secuencial\n";

            cout << "------------------------------\n";

            Busqueda();

            break;

        case 2:

            cout << "------------------------------";

            cout << "\nOrdenamiento de Burbuja\n";

            cout << "------------------------------\n";

           Burbuja();

            break;

        case 3:

            cout << "------------------------------";

            cout << "\nOrdenamiento por Monticulos\n";

            cout << "------------------------------\n";

            cout << "Arreglo original:\n";

            printArray(arr, n2);

            heapSort(arr, n2);

            cout << "Arreglo ordenado usando Heap Sort:\n";

            printArray(arr, n2);

            break;

        case 4:

            cout << "------------------------------";

            cout << "\nBusqueda Binaria\n";//Ejercicio de Tarea

            cout << "------------------------------\n";

            bbinaria();

            break;

​

​

        case 5:

            cout << "------------------------------";

            cout << "\nOrdenamiento por Seleccion\n";

            // Ejercicio de Tarea

            cout << "------------------------------\n";

            Oseleccion();

            break;

        default:

            break;

        }

        do

        {

            cout << "\nDesea realizar otra operacion?\n";

            cout << "[1 = Si] [2 = No]\n";

            cin >> n1;

            if (n1 != 1 && n1 != 2)

            {

                cout << "\nOpcion Incorrecta";

            }

        } while (n1 != 1 && n1 != 2);

    } while (n1 == 1);

    cout << "\nPrograma Finalizado\n";

}

 

void Busqueda()

{

    for (i = 1; i <= 20; i++)

    {

        A[i] = rand() % 20;

        cout << "A[" << i << "]=" << A[i];

    }

    cout << "Ingrese el elemento a buscar ";

    cin >> n;

    cout << "cuenta las veces que se encuentra el elemento \n";

    c = 0;

    for (i = 1; i <= 20; i++)

    {

        if (A[i] == n)

        {

            cout << "A[" << i << "]=" << A[i] << endl;

            c = c + 1;

        }

    }

    cout << "\n se repitio: " << c << " veces " << n << endl;

}

 

void Burbuja()

{

    for (i = 1; i <= 20; i++)

    {

        A[i] = rand() % 20;

        cout << "A[" << i << "]=" << A[i];

    }

    cout << "'n Ordenando el vector A[20] " << endl;

    for (i = 1; i <= 20; i++)

    {

        for (j = 1; j <= 19; j++)

        {

            if (A[j] > A[j + 1])

            {

                Aux = A[j];

                A[j] = A[j + 1];

                A[j + 1] = Aux;

            }

        }

    }

 

    for (i = 1; i <= 20; i++)

    {

        cout << "A[" << i << "]=" << A[i] << endl;

    }

}

void heapify(int arr[], int size, int i)

{

    int largest = i;

    int left = 2 * i + 1;

    int right = 2 * i + 2;

 

    if (left < size && arr[left] > arr[largest])

    {

        largest = left;

    }

 

    if (right < size && arr[right] > arr[largest])

    {

        largest = right;

    }

 

    if (largest != i)

    {

        swap(arr[i], arr[largest]);

        heapify(arr, size, largest);

    }

}

 

void heapSort(int arr[], int size)

{

    for (int i = size / 2 - 1; i >= 0; --i)

    {

        heapify(arr, size, i);

    }

 

    for (int i = size - 1; i >= 0; --i)

    {

        swap(arr[0], arr[i]);

        heapify(arr, i, 0);

       

    }

}

 

void printArray(int arr[], int size)

{

    for (int i = 0; i < size; ++i)

    {

        cout << arr[i] << " ";

    }

    cout << endl;

}

void bbinaria() {

    // Algoritmo de la Busqueda Binaria

    inf = 0;

    sup = 5;

    i = 0;

    while ((inf <= sup) && (i < 5))

    {

        mitad = (inf + sup) / 2;

        if (numeros[mitad] == dato)

        {

            band = 'V';

            break;

        }

        if (numeros[mitad] > dato)

        {

            sup = mitad;

            mitad = (inf + sup) / 2;

        }

        if (numeros[mitad] < dato)

        {

            inf = mitad;

            mitad = (inf + sup) / 2;

        }

        i++;

    }

 

    if (band == 'V')

    {

        cout << "El numero se encontro en la pos: " << mitad << endl;

    }

    else

    {

        cout << "El numero NO se encontro";

    }

}

void Oseleccion () {

    int numeros[] = {3, 4, 5, 2, 1};

    int aux,min;

 

    // Algoritmo del Ordenamiento por Selección

    for (i = 0; i < 5; i++)

    {

        min = i;

        for (j = i + 1; j < 5; j++)

        {

            if (numeros[j] < numeros[min])

            {

                min = j;

            }

        }

        aux = numeros[i];

        numeros[i] = numeros[min];

        numeros[min] = aux;

    }

 

    cout << "Orden Ascendente: ";

    for (i = 0; i < 5; i++)

    {

        cout << numeros[i] << " ";

    }

 

    cout << "\nOrden Descendente: ";

    for (i = 4; i >= 0; i--)

    {

        cout << numeros[i] << " ";

    }

}

image.png
image.png
image.png
image.png
image.png
  • Instagram

Lenguaje de Programación C++

Facultad de Ingeniería Mecánica Eléctrica y Electrónica

Escuela Profesional de Ingeniería Electrónica

"Universidad Nacional San Luis Gonzaga de Ica"

bottom of page