You are on page 1of 6

Solutions to Chapter One Questions1.

___________ is the process of executing a correct program on data sets and measuring the time and space it takes tocompute the results? Ans. Profiling2. Define algorithm? What are its properties? Ans. An algorithm is a set of instructions that provide step-by-step specifications to perform a task.The properties of an algorithm are: Input : Specifies the data set that is applied to the algorithm to check its validity. Output : Specifies the data set that is produced as a result of the algorithm execution. Definiteness : Specifies that the instructions described in the algorithm should be well defined and should not create any ambiguity. Termination : Specifies that the instructions described in the algorithm must contain a proper termination condition. Effectiveness : Specifies that the algorithm take less time and less memory space duringits execution. 3. What is debugging and what is profiling? Ans. Debugging is the process of identifying and fixing the errors in a program. Errors in a program can be identified byexecuting the program with a sample dataset.Profiling is the process of measuring the performance of the program by executing it on different data sets. Performanceof a program is measured by recording the time and memory space that the program takes during its execution. 4. One of the properties of an algorithm is beauty (true/false) Ans. False

1. Give at least 5 real life examples where we use stack operations. Ans. The real life examples of stacks are: Bangles in a hand : The bangles wore in a hand follow last-in-first-out (LIFO) strategy of stack. The bangle that you wear first is the last one to be taken out while removing all thebangles from the hand. The bangle that is worn last is the first one to be taken out. Same circumference circular rings in a pole : The rings having same circumferenceplaced into a pole also follow LIFO strategy. The topmost ring, which was the last to be placed in the pole, is the first one to be taken out. Sacks full of wheat placed one over other : The sack at the top is removed first and thesack at the bottom is removed last. The bolts screwed to a single nut

: When the bolts are screwed to a single nut, the lastscrewed bolt is unscrewed first and the bolt that was screwed first is unscrewed in the last. Battery cells in a torch : The battery cells in a torch also follow the same LIFO strategy of stack.

2. Give at least 5 real life examples where queue is used. Ans. Real life examples of queue are: A queue of people at ticket-window : The person who comes first gets the ticket first. Theperson who is coming last is getting the tickets in last. Therefore, it follows first-in-first-out(FIFO) strategy of queue. Vehicles on toll-tax bridge : The vehicle that comes first to the toll tax booth leaves thebooth first. The vehicle that comes last leaves last. Therefore, it follows first -in-first-out(FIFO) strategy of queue. Phone answering system : The person who calls first gets a response first from the phoneanswering system. The person who calls last gets the response last. Therefore, it followsfirst-in-first-out (FIFO) strategy of queue. Luggage checking machine : Luggage checking machine checks the luggage first that comes first. Therefore, it follows FIFO principle of queue. Patients waiting outside the doctor's clinic : The patient who comes first visits the doctor first, and the patient who comes last visits the doctor last. Therefore, it follows the first-in-first-out (FIFO) strategy of queue. 4. Draw a connected graph that becomes disconnected when any edge is removed from it. Ans. The following figure shows a graph that becomes disconnected when any edge is removed from it: Disconnected Graph

1. Design and develop algorithms for multiplying n integers.Hint: Follow the algorithm to add n numbers given in the text Ans.Algorithm: Multiply_n_Integers Input:integers, number of integers to be multiplied (n), loop variable (i) Output: mul, updated Method: Display 'Enter the number of elements' Accept n Display 'Enter elements one by one' for (i = 1 to n in steps of 1 do) Accept a (i) end_for mul = 1 for (i = 1 to n in steps of 1 do) mul = mul*a(i) end_for Display 'multiplication of n integers is = ', mul 2. Design and develop an algorithm for finding the middle element in three numbers. Ans. To find the middle element one has to first sort the numbers in ascending order. The smallest number becomes the firstelement in the sorted list and the largest number becomes the last element in the sorted list.Consider three numbers 3, 1, and 7.The smallest number amongst these three is 1; therefore, 1 becomes the first element in the sorted list. Amongst 3 and 7,3 is the second element. The larger number 7 is left out and becomes the last element. Hence the middle number 3 isdisplayed. Algorithm :Middle_3_Elements Input: a, b, c the three numbers to be sorted, two temporary variables k1, and K2 Output: Middle element in the three numbers. Method If (a<b) If (a<c) If (b<c) m=b else m=c end if else m=a end if else if (b<c) if (a<c) m=a else m=c end if else m=b end if end if 3. Develop an algorithm to find the number of Permutations and Combinations for a given n and r. Ans. Permutation of a given number is given by n*(n-1)*(n-2)...up to r factors.This is a generalized algorithm for n>2 Algorithm: Permutation of a number for a given r Input: n and r Output: Permutation of n Method a) per = 1 for (j = n to n - r + 1 in steps of -1 do) //where j is a loop variable

per = per*j end_for Display ' Permutation = ', per b) Combination of a number n for a given r is calculated by nCr = nPr / r! Calculate the permutation nPr using the above algorithm Calculate the factorial for r using the algorithm fact = 1 for (j =1 to r in steps of 1 do) //where j is a loop variable fact = fact*j end_for comb = per / fact Display ' Combination =', comb 4. Design an algorithm to generate all prime numbers within the limits l1 and l2. Ans.Algorithm: to generate all prime numbers between the limits l1 and l2. Input: l1 and l2 Output: Prime numbers between l1 and l2 Method: for (n=l1 to l2 in steps of 1 do) prime=true for (i=2 to n/2 in steps of 1 do) if (n % i =0) prime = false break end_if end_for if (prime = true) Display 'Prime number is =', n end_for 5. Design an algorithm to find the reverse of a number. Ans.Algorithm: Reverse of a number Input: number Output: Reverse of a number Method new_number = 0 while (number > 0) n = number % 10 //n denotes a digit extracted from the number number = number / 10 new_number = new_number +n new_number= new_number*10 end while new_number = new_number/10 Display 'Reverse number is =', new_number 6. A number is said to be a palindrome if the reverse of a number is same as the original. Design an algorithm to checkwhether a number is a palindrome or not. Ans.Algorithm: check whether the number is a palindrome or not Input: number, flag Output: number is a palindrome Method :count = 0 while (number > 0) n = number%10 a(count)=n count = count+1 end while half = count/2

palin = true for (j=1 to half in steps of 1 and k=count to half in steps of 1 do) if (a (j)! =a(k)) palin = false break end if if (palin = true) Display 'Number is a palindrome' Else Display 'Number is not a palindrome' end if end for

7. Design an algorithm to check whether a given string is a palindrome or not. Ans.Algorithm : check whether the string is a palindrome or not Input : string, flag Output: string is a palindrome Method:count = 0 while (the next character ch in the string is not empty) a(count) = ch count = count+1 end while half = count/2palin = true for (i=1 to half in steps of 1 and j=count to half in steps of 1 do) if (a (i)! =a (j)) palin = false break end if if (palin = true) Display 'String is a palindrome' Else Display 'String is not a palindrome' end if end for

1. What are the serious shortcomings of the binary search method and sequential search method? Ans. A serious shortcoming of the sequential search method is that even if the element that you are trying to search is notpresent in the given file, the entire file is searched at least once.A serious shortcoming of the binary search method is that it can be applied only to a list in which the elements arearranged in ascending order.

4. Try to know more sorting techniques and make a comparative study of them. Ans. There are various sorting techniques, such as bubble sort, quick sort, and shell sort. Each of these sorting techniques isdefined as follows: Bubble sort : In the bubble sort technique two elements are compared at a time and if thetwo elements are not in ascending order these elements are interchanged. This process isrepeatedly performed throughout the given list until the list is completely sorted. To sort alist of n elements using bubble sort you need to make a total of (n-1) 2 comparisons.

Quick sort : The basic idea underlying quick sort is to allow a specific element 'a' within thelist 'x' to find its proper position 'j'. The proper position 'j' is found such that it satisfies thefollowing two conditions:The elements on the left hand side of position 'j' are all smaller than or equal to 'a'The elements on the right hand side of position 'j' are all greater than or equal to 'a'If 'a' satisfies these two conditions, then 'a' is the jth smallest element in the list and 'a' is placed at jth position in the finallysorted list. This process is then repeated for sub arrays x [0..j-1] and x [j+1..n-1]. Shell sort : In shell sort, the given list x is divided into sub lists containing every kth elementof the given list. For example, if k=5 then one sub list contains x [0], x [5], x [10]..., another sub list contains x [1], x [6], x [11]..., and so on. The elements of these sub lists are thencompared two at a time and if the two elements are not in ascending order, these elementsare interchanged.Now, a new value of k is chosen which is smaller than the previous value of k and the process is repeated again. Thisprocess is repeated until the value of k is set to 1 so that the sub list consisting of the entire list is sorted.

5. List out the merits and the demerits of recursion. Ans. Merits of recursion are:Mathematical functions, such as fibonacci series generation can be easily implemented using recursion as compared toiteration technique.Demerits of recursion are:Many programming languages do not support recursion; hence, recursive mathematical function is implemented usingiterative methods.Even though mathematical functions can be easily implemented using recursion, it is always at the cost of execution timeand memory space.The recursive programs take considerably more storage and take more time during processing. 6. The data structure used by recursive algorithms is ______. Ans. Stack 1. What is a binary tree? Ans. A binary tree is made up of nodes where each node consists of three elements, left node, right node and a data element.The root node is the topmost node of the binary tree.