Algorithm Lab
Algorithm Lab
Name-Satyam Dwivedi
Reg no-2020CA081
int main()
{
int n;
printf("Enter no. of items: ");
scanf("%d", &n);
int weight[n], val[n];
int totalcapacity;
printf("Enter capacity of Knapsack: ");
scanf("%d", &totalcapacity);
double avgprofit[n];
for(int i = 0; i < n; i++)
avgprofit[i] = (val[i] * 1.0)/ weight[i];
// Knapsack
int used[n];
for (int i = 0; i < n; i++)
used[i] = 0; // I have not used the ith object yet
while(currentcapacity > 0)
{
int maxi = -1;
for(int i = 0; i < n; i++)
{
if(!used[i])
{
if(maxi == -1 || avgprofit[i] > avgprofit[maxi])
maxi = i;
}
}
return temp;
}
// A utility function to create
// a min heap of given capacity
struct MinHeap* createMinHeap(unsigned capacity)
// current size is 0
minHeap->size = 0;
minHeap->capacity = capacity;
// A utility function to
// swap two min heap nodes
void swapMinHeapNode(struct MinHeapNode** a,
struct MinHeapNode** b)
if (smallest != idx) {
swapMinHeapNode(&minHeap->array[smallest],
&minHeap->array[idx]);
minHeapify(minHeap, smallest);
}
}
--minHeap->size;
minHeapify(minHeap, 0);
return temp;
}
++minHeap->size;
int i = minHeap->size - 1;
while (i
&& minHeapNode->freq
< minHeap->array[(i - 1) / 2]->freq) {
minHeap->array[i] = minHeapNode;
}
int n = minHeap->size - 1;
int i;
for (i = (n - 1) / 2; i >= 0; --i)
minHeapify(minHeap, i);
}
printf("\n");
}
minHeap->size = size;
buildMinHeap(minHeap);
return minHeap;
}
{
struct MinHeapNode *left, *right, *top;
top->left = left;
top->right = right;
insertMinHeap(minHeap, top);
}
arr[top] = 0;
printCodes(root->left, arr, top + 1);
}
arr[top] = 1;
printCodes(root->right, arr, top + 1);
}
{
// Construct Huffman Tree
struct MinHeapNode* root
= buildHuffmanTree(data, freq, size);
// Driver code
int main()
{
return 0;
}
Output: