Heap Sort
Heap Sort
MIS : 612303196
HEADER.h
typedef struct {
int *arr;
int size;
int capacity;
} MinHeap;
// Function declarations
LOGIC.c
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
*a = *b;
*b = temp;
int smallest = i;
int left = 2 * i + 1;
int right = 2 * i + 2;
smallest = left;
smallest = right;
if (smallest != i) {
swap(&heap->arr[i], &heap->arr[smallest]);
minHeapify(heap, smallest);
heap->size = 0;
heap->capacity = capacity;
return heap;
}
void insertHeap(MinHeap *heap, int value) {
if (heap->size == heap->capacity) {
printf("Heap overflow\n");
return;
int i = heap->size++;
heap->arr[i] = value;
i = (i - 1) / 2;
if (heap->size <= 0)
return -1;
if (heap->size == 1)
return heap->arr[--heap->size];
heap->arr[0] = heap->arr[--heap->size];
minHeapify(heap, 0);
return root;
free(heap->arr);
free(heap);
MAIN.c
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include "header.h"
if (argc != 2) {
return 1;
}
int fd = open(argv[1], O_RDONLY);
if (fd == -1) {
return 1;
char buffer[BUFFER_SIZE];
if (bytesRead == -1) {
close(fd);
return 1;
buffer[bytesRead] = '\0';
close(fd);
int number;
insertHeap(heap, number);
while (*ptr != ' ' && *ptr != '\n' && *ptr != '\0') {
ptr++;
}
if (*ptr == '\0') break;
ptr++;
char num_str[12];
freeHeap(heap);
return 0;
Numbers.txt
Output :