Heap Sort em C
Publicado por leone duarte de oliveira (última atualização em 04/05/2018)
[ Hits: 8.983 ]
Homepage: leone duarte
Método de ordenação Heap Sorte, feito em projeto.
Necessário ter os 3 arquivos para funcionar. Copie cada um em seu respectivo arquivo. Verifique se os nomes dos arquivos e seus respectivos #include no código-fonte.
//////MAIN////// /* DESENVOLVIDO POR LEONE DUARTE DE OLIVEIRA MATERIA: ORDENAÇÃO E PESQUISA PROFESSOR:MAICON RIBEIRO DATA: 29/03/2018 */ #include"heap.h" main(){ int tamanho_vetor, *vetor,contador,contador2=0,maior,cont,sair=0,menu1; int aux; while(sair==0){ printf("\n\t\t--------------------------------------\n"); printf("\n\t\t\tORDENACAO USANDO HEAP SORT\n\n\t\t\t1-GERAR NOVO VETOR\n\t\t\t2-SAIR\n\t\t\t>>>>>"); printf("\n\t\t--------------------------------------\n"); scanf("%d",&menu1); system("cls"); switch(menu1){ case 1: printf("\nINSIRA O TAMANHO DO VETOR:\n"); scanf("%d",&tamanho_vetor); vetor = malloc(sizeof(int)* (tamanho_vetor)); srand(time(NULL)); //gerando vetores aleatorios for(contador = 0; contador < tamanho_vetor; contador++){ vetor[contador]= rand()%100; } //exibindo desordenado for(contador2=0; contador2 < tamanho_vetor; contador2++){ printf("numero %d: %d\n",contador2,vetor[contador2]); } printf("\n\n--------------------------------------\n\n"); clock_t hora_inicial = clock(); heap_sort(vetor, tamanho_vetor); cont = tamanho_vetor-1; while(cont >= 0 ){ //mandando o maior para o começo heap_sort(vetor, cont); //mandando maior para o final for(contador = 0; contador < cont; contador++){ aux = vetor[contador]; vetor[contador] = vetor[contador+1]; vetor[contador+1] = aux; } heap_sort(vetor, cont); cont--; } clock_t hora_final = clock(); //exibindo organizado for(contador2 = 0; contador2 < tamanho_vetor; contador2++){ printf("numero %d: %d\n",contador2, vetor[contador2]); } double tempo_gasto = ( (double) (hora_final - hora_inicial) ) / CLOCKS_PER_SEC; printf("TEMPO GASTO USANDO HEAP SORT: %lf s\n", tempo_gasto); system("pause"); system("cls"); break; case 2: printf("\nATE LOGO..."); sair=1; break; } } } //////////////////////////////////////////////////////////////////////////////////////////////////////HEAP.C///////////////////////////////////////////////////////////////////////////////////////////////// #include"heap.h" int heap_sort(int *vetor, int tamanho){ int pai_direita, pai_esquerda, aux, contador; for(contador = tamanho-1; contador >= 0; contador-- ){ //descobrindo o a raiz de cada galho pai_direita = (contador / 2) - 1; pai_esquerda = (contador - 2) / 2; //trocando caso a raiz seja manor que o galho da direita if(vetor[contador] > vetor[pai_direita]){ aux = vetor[contador]; vetor[contador] = vetor[pai_direita]; vetor[pai_direita] = aux; } //trocando caso a raiz seja menor que o galhp da esquerda else if (vetor[contador-1] > vetor[pai_esquerda] ){ aux = vetor[contador-1]; vetor[contador-1] = vetor[pai_esquerda]; vetor[pai_esquerda] = aux; } } } ///////HEAP.H///// #include<stdlib.h> #include<stdio.h> #include<time.h> int heap_sort(int *vetor, int tamanho);//recebe um vetor um tamanho com o objetivo de mover o maior valor sempre para primeira posição
Método eficiente de armazenamento utilizando containers (Vector e Map)
Lista simplesmente encadeada com busca auto-organizada
Algoritmo para detecção do sistema operacional em C
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Quero saber sobre os melhores aplicativos de office para usar em 2024 ... (2)
Queria saber se existe alguma forma de desistalar programa no ubuntu s... (3)
Toda vez que tento atualizar o clamav me deparo com erros ao atualizar... (0)