Skip to content

Ordine degli elementi di dati in un esempio di codice ad albero heap

Portiamo la migliore soluzione che abbiamo trovato online. Speriamo che ti sia d'aiuto e se vuoi apportare miglioramenti, fallo liberamente.

Esempio: ordinamento heap

// Heap Sort in C

  #include <stdio.h>// Function to swap the the position of two elementsvoidswap(int*a,int*b){int temp =*a;*a =*b;*b = temp;}voidheapify(int arr[],int n,int i){// Find largest among root, left child and right childint largest = i;int left =2* i +1;int right =2* i +2;if(left < n && arr[left]> arr[largest])
      largest = left;if(right < n && arr[right]> arr[largest])
      largest = right;// Swap and continue heapifying if root is not largestif(largest != i){swap(&arr[i],&arr[largest]);heapify(arr, n, largest);}}// Main function to do heap sortvoidheapSort(int arr[],int n){// Build max heapfor(int i = n /2-1; i >=0; i--)heapify(arr, n, i);// Heap sortfor(int i = n -1; i >=0; i--){swap(&arr[0],&arr[i]);// Heapify root element to get highest element at root againheapify(arr, i,0);}}// Print an arrayvoidprintArray(int arr[],int n){for(int i =0; i < n;++i)printf("%d ", arr[i]);printf("n");}// Driver codeintmain(){int arr[]={1,12,9,5,6,10};int n =sizeof(arr)/sizeof(arr[0]);heapSort(arr, n);printf("Sorted array is n");printArray(arr, n);}

Commenti e valutazioni



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.