TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Algoritimo Online para cálculo da Mediana de um conjunto de inteiros não repetidos

Por:   •  18/7/2019  •  Trabalho acadêmico  •  731 Palavras (3 Páginas)  •  185 Visualizações

Página 1 de 3

// Algoritimo Online para cálculo da Mediana de um conjunto de inteiros não repetidos.

int CalcMed (int  e, int &m, Heap &E, Heap &D)

{

    // Os Heaps estão Balanceados? Se Sim Difcont será  0

    int Difcont = CalculaDifcont (ContHeap.E(), ContHeap.D());

    {

    caso 1: // Existem mais elementos Heap_Max Esquerdo

  

        Se ( e < m ) // O elemento corrente será colocado no Heap_Max Esquerdo

        {

            // Remove o elemento do topo do  Heap  Esquerdo

            // Insere o elemento no Heap Direito

            Insere.D (ExtrairTop.E());

  

            // Insere o elemento corrente no Heap_Max Esquerdo

            Insere.E(e);

        }

        Senão

        {

            // Insere o elemento corrente no Heap_Min Direito

            Insere.D (e);

        }

  

        // Os dois Heaps estão balanceados

        m = Média (ConsultaTop.E(), ConsultaTop.R());

  

        Sair da rotina;

  

    caso 0: // Os Heaps, esquerdo e direito, tem a mesma quantidade de elementos

  

        Se ( e < m ) // O elemento corrente será colocado no Heap_Max Esquerdo

        {

            Insere.E (e);

            m = ConsultaTop.E ();

        }

        Senão

        {

            // O elemento corrente será colocado no Heap_Min Direito

            Insere.D(e);

            m = ConsultaTop.D();

        }

  

        Sair da rotina;

  

    caso -1: // Existem mais elementos no Heap_Min Direito

  

        Se ( e < m ) // O elemento corrente será colocado no Heap_Max Esquerdo

        {

            Insere.E (e);

        }

        Senão

        {

            // Remove o elemento do topo do  Heap  Direito

            // Insere o elemento no Heap Esquerdo

            Insere.E (ExtrairTop.R());

  

            // Insere o elemento corrente no Heap_Min Direito

            Insere.R (e);

        }

        // Os dois Heaps estão balanceados

        m = Média(ConsultaTop.E(), ConsultaTop.R());

  

        Sair da rotina;

    }

  

    // Não é necessário mais retorna, m já está atualizada

    Imprime  m;

}

...

Baixar como (para membros premium)  txt (2.1 Kb)   pdf (35.2 Kb)   docx (7.3 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com