Saltar al contenido

ejemplo de código de complejidad de tiempo de heapsort

Verificamos completamente cada reseña de nuestra web con el objetivo de mostrarte siempre información veraz y certera.

Ejemplo: heap sort heapify y max heap en árbol binario

Implementation of heap sort in C:#include int main()int heap[10], array_size, i, j, c, root, temporary;
   printf("n Enter size of array to be sorted :");
   scanf("%d",&array_size);
   printf("n Enter the elements of array : ");for(i =0; i < array_size; i++)
      scanf("%d",&heap[i]);for(i =1; i < array_size; i++)
       c = i;
       do
       
           root =(c -1)/2;if(heap[root]< heap[c])/* to create MAX heap array *///if child is greater than parent swap them
               temporary = heap[root];//as structure is of complete binary tree
               heap[root]= heap[c];// it took logn steps to reach from root to leaf
               heap[c]= temporary;
           c = root;while(c !=0);
   printf("Heap array : ");for(i =0; i < array_size; i++)
       printf("%dt ", heap[i]);//printing the heap array
   for(j = array_size -1; j >=0; j--)
       temporary = heap[0];
       heap[0]= heap[j];/* swap max element with rightmost leaf element */
       heap[j]= temporary;
       root =0;
       do
       
           c =2* root +1;/* left node of root element */if((heap[c]< heap[c +1])&& c < j-1)
               c++;if(heap[root]<heap[c]&& c<j)/* again rearrange to max heap array */
               temporary = heap[root];
               heap[root]= heap[c];
               heap[c]= temporary;
           root = c;while(c < j);
   printf("n The sorted array is : ");for(i =0; i < array_size; i++)
      printf("t %d", heap[i]);

Aquí tienes las comentarios y puntuaciones

Si conservas alguna sospecha y forma de acrecentar nuestro sección puedes ejecutar una explicación y con placer lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *