-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMinHeap.c
More file actions
51 lines (44 loc) · 871 Bytes
/
Copy pathMinHeap.c
File metadata and controls
51 lines (44 loc) · 871 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<stdio.h>
#include<stdlib.h>
void heapify(int *arr,int heapsize,int i)
{
int left = 2*i+1;
int right = 2*i+2;
int min;
if(left<heapsize && arr[left]<arr[i])
min = left;
else
min = i;
if(right<heapsize && arr[right]<arr[min])
min = right;
if(min!= i)
{
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
heapify(arr,heapsize,min);
}
}
void MinHeap(int *arr,int size)
{
int i,heapsize;
heapsize = size;
for(i = size/2-1;i>=0;i--)
heapify(arr,heapsize,i);
}
int main()
{
int len,i;
int str[] = { 34,3,56,22,1,36,44,67};
len = sizeof(str)/sizeof(str[0]);
printf("Given array: ");
for(i=0;i<len;i++)
printf("%d ", str[i]);
printf("\n");
MinHeap(str,len);
printf("Min Heap: ");
for(i=0;i<len;i++)
printf("%d ", str[i]);
printf("\n");
return 0;
}