Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #Coded by Ashish Khatkar & CaFc Versace
- #Greets : Code Plaza
- void heapify(int a[], int i, int n) {
- int largest;
- int left = (2 * i) + 1;
- int right = (2 * i) + 2;
- if (left < n && a[left] > a[i]) {
- largest = left;
- } else {
- largest = i;
- }
- if (right < n && a[right] > a[largest]) {
- largest = right;
- }
- if (largest != i) {
- int temp = a[i];
- a[i] = a[largest];
- a[largest] = temp;
- heapify(a, largest, n);
- }
- }
- void hsort(int a[], int n) {
- int i;
- for (i = n - 1; i >= 1; i--) {
- int temp = a[i];
- a[i] = a[0];
- a[0] = temp;
- n = n - 1;
- heapify(a, 0, n);
- }
- }
- void main() {
- int i;
- printf("Enter n ");
- int n;
- scanf("%d", & n);
- int a[n];
- printf("Enter elements\n");
- for (i = 0; i < n; i++) {
- scanf("%d", & a[i]);
- }
- printf("Before heapification\n");
- for (i = 0; i < n; i++) {
- printf("%d ", a[i]);
- }
- printf(" ");
- for (i = (n - 1) / 2; i >= 0; i--) {
- heapify(a, i, n);
- }
- printf("\nAfter heapification\n");
- for (i = 0; i < n; i++) {
- printf("%d ", a[i]);
- }
- hsort(a, n);
- printf("\nAfter heap sort\n");
- for (i = 0; i < n; i++) {
- printf("%d ", a[i]);
- }
- printf(" ");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement