Ir ao conteúdo
  • Cadastre-se

Ordenaçao HeapSort em C++


Posts recomendados

Gostaria de saber como fica a ordenação HeapSort que está em C++ em visualg, pois sou iniciante e estou aprendendo visualg, obrigado pela atençao

 


template<class T>

void heap_sort( std::vector<T> &lista )

{

    int tam = static_cast<int>( lista.size() ), i;

 

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

    {

       maxHeapify(lista, i , tam );

    }

 

    std::vector<T>::reverse_iterator elem;

 

    for( elem = lista.rbegin(); elem != lista.rend(); elem++ )

    {

       std::iter_swap( elem, lista.begin() );

       maxHeapify( lista, 0, --tam );

    }

}

 

template<class T>

void maxHeapify( std::vector<T> &lista, const int pos, const int n )

{

    int max = 2 * pos + 1;

 

    if( max < n )

    {

       if( (max+1) < n && lista.at(max) < lista.at(max+1) )

       {

          ++max;

       }

       if( lista.at(max) > lista.at(pos) )

       {

          std::swap( lista[max], lista[pos] );

          maxHeapify( lista, max, n );

       }

    }

}


 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!