Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Algoritmo Heap Sort em Java, Notas de estudo de Informática

A implementação do algoritmo heap sort em java. O algoritmo consiste em construir uma árvore binária maxima, ordenar o vetor utilizando a função heapify e finalmente reorganizar o vetor. A função heapify é responsável por manter a árvore binária maxima após a troca de elementos.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 05/02/2010

gustavo-dias-11
gustavo-dias-11 🇧🇷

4.7

(7)

46 documentos

1 / 1

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
public static void heapSort(int[] v)
{
buildMaxHeap(v);
int n = v.length;
for (int i = v.length - 1; i > 0; i--)
{
swap(v, i , 0);
maxHeapify(v, 0, --n);
}
}
private static void buildMaxHeap(int[] v)
{
for (int i = v.length/2 - 1; i >= 0; i--)
maxHeapify(v, i , v. length );
}
private static void maxHeapify(int[] v, int pos, int n)
{
int max = 2 * pos + 1, right = max + 1;
if (max < n)
{
if ( right < n && v[max] < v[right])
max = right;
if (v[max] > v[pos])
{
swap(v, max, pos);
maxHeapify(v, max, n);
}
}
}
public static void swap ( int[ ] v, int j, int aposJ )
{
int aux = v [ j ];
v [ j ] = v [ aposJ ];
v [ aposJ ] = aux;
}

Pré-visualização parcial do texto

Baixe Algoritmo Heap Sort em Java e outras Notas de estudo em PDF para Informática, somente na Docsity!

public static void heapSort(int[] v) { buildMaxHeap(v); int n = v.length;

for (int i = v.length - 1; i > 0; i--) { swap(v, i , 0); maxHeapify(v, 0, --n); } } private static void buildMaxHeap(int[] v) { for (int i = v.length/2 - 1; i >= 0; i--) maxHeapify(v, i , v. length ); } private static void maxHeapify(int[] v, int pos, int n) { int max = 2 * pos + 1, right = max + 1; if (max < n) { if ( right < n && v[max] < v[right]) max = right; if (v[max] > v[pos]) { swap(v, max, pos); maxHeapify(v, max, n); } } }

public static void swap ( int[ ] v, int j, int aposJ ) { int aux = v [ j ]; v [ j ] = v [ aposJ ]; v [ aposJ ] = aux; }