0% found this document useful (0 votes)
21 views1 page

Heap Sort

This document contains a C program that implements the heap sort algorithm. It includes functions for swapping elements, heapifying the array, and sorting the array using heap sort. The program prompts the user to input the number of elements and the elements themselves, then outputs the sorted array.

Uploaded by

swetha.v
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views1 page

Heap Sort

This document contains a C program that implements the heap sort algorithm. It includes functions for swapping elements, heapifying the array, and sorting the array using heap sort. The program prompts the user to input the number of elements and the elements themselves, then outputs the sorted array.

Uploaded by

swetha.v
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1

//heap sort

#include <stdio.h>

void swap(int *a, int *b) {


int temp = *a;
*a = *b;
*b = temp;
}

void heapify(int arr[], int n, int i) {


int largest = i, left = 2 * i + 1, right = 2 * i + 2;

if (left < n && arr[left] > arr[largest]) largest = left;


if (right < n && arr[right] > arr[largest]) largest = right;

if (largest != i) {
swap(&arr[i], &arr[largest]);
heapify(arr, n, largest);
}
}

void heapSort(int arr[], int n) {


for (int i = n / 2 - 1; i >= 0; i--) heapify(arr, n, i);
for (int i = n - 1; i > 0; i--) {
swap(&arr[0], &arr[i]);
heapify(arr, i, 0);
}
}

int main() {
int n;

printf("Enter number of elements: ");


scanf("%d", &n);

int arr[n];
printf("Enter elements:\n");
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);

heapSort(arr, n);

printf("Sorted array: ");


for (int i = 0; i < n; i++) printf("%d ", arr[i]);
printf("\n");

return 0;
}

You might also like