Skip to main content

Posts

Showing posts with the label Greedy Algorithms

Activity Selection Problem Analysis

Definition: Scheduling a resource among several competing activities. Goal: To select a maximum-size set of mutually compatible activities. For example consider the following problem: Rules to Select the items are: 1. Sort the activities according to thier finish time. 2. Select the first item from the Sorted list. 3. Then for rest of the activities select the items if     Start Time of the current activity > = Finish Time of the previous activity. So if we sort the activities according to their finish time (rule 1) it becomes like below:  Now for the first item select the first activity from above list (rule 2). So, activity A1. Now the current activity is A2 and its Start time 3 > = finish time of prevoius activity is 2. So, A2 is also selected. Now the current activity is A1 and its Start time 0 < = finish time of prevoius activity is 4.  So, A1 is will not be selected. Now the current activity is A5 and its Start time 5 > = fini...

Huffman Coding Analysis

It is optimal code that is commonly used for lossless data compression (reduces file sizes). It uses greedy algorithms approach. Lossless means without loss of information. There are mainly two major parts in Huffman Coding 1) Build a Huffman Tree from input characters. 2) Traverse the Huffman Tree and assign codes to characters. Let's say we are considering a chart with few characters. Every char is 8 bits long. Now after Huffman Coding we get the chart like this: Character       Frequency     Occurance A                      1100                 4 B                      1101                 4 C                 ...