Skip to content

Commit 86d424f

Browse files
committed
minor modifications to question
1 parent 3fb2827 commit 86d424f

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

greedy/question10.c

Whitespace-only changes.

greedy/question9.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,15 @@ int extractMin(int *arr, int *size){
6262
}
6363

6464
void decreaseKey(int *arr, int *size, int key, int data){
65-
int i=key, temp;
66-
arr[i] = data;
67-
minHeapify(arr,i,*size);
65+
if(data > arr[key]){
66+
return;
67+
}
68+
arr[key] = data;
69+
while(key > 0 && arr[(key-1)/2] > arr[key]){
70+
swap(&arr[(key-1)/2],&arr[key]);
71+
key = (key-1)/2;
72+
}
73+
6874
}
6975

7076
void printHeap(int *arr, int size){
@@ -76,14 +82,14 @@ void printHeap(int *arr, int size){
7682

7783
int findMinCost(int *arr, int size){
7884
buildMinHeap(arr,size);
79-
printHeap(arr,size);
8085
int cost = 0;
8186
while(size > 1){
8287
int value = extractMin(arr,&size)+extractMin(arr,&size);
8388
cost += value;
8489
arr[size] = INT_MAX;
8590
size++;
8691
decreaseKey(arr,&size,size-1, value);
92+
printHeap(arr,size);
8793
}
8894
return cost;
8995
}

0 commit comments

Comments
 (0)