Professional Documents
Culture Documents
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 by executing the program with a sample dataset .Profiling is the process of measuring the performance of the program by executing it on different data sets. Performance of a program is measured by recording the time and memory space that the program takes during its execution.
Vehicles on toll-tax bridge: The vehicle that comes first to the toll tax booth leaves the booth 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 phone answering system. The person who calls last gets the response last. Therefore, it follows first-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. 3.Name 10 situations that can be represented by means of graphs. Explain what each vertex and edge represents. Ans. The situations that can be represented by means of graphs are. 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
(Figure 1)
5 .Draw all trees of n labeled vertices for n=1,2,3,4 and 5. Ans. The following figures show the trees for various values of n, where n represents the number of vertices in a tree .For n=1For n=2For n =3There can be a number of trees with 3 labeled vertices. Some of the examples of the trees with 3 labeled vertices are:
(Figure 1)
For n=4Again, there can be a number of trees with 4 labeled vertices. Some of the examples of the trees with 4 labeled vertices are : For n=5
Again, there can be a number of trees with 5 labeled vertices. Some of the examples of the trees with 5 labeled vertices are:
(Figure 2)
6. Sketch all binary trees with six pendent edges. Ans. The following figures show binary trees with six pendent edges:
(Figure 3)
Binary Tree with Six Pendent Edges The preceding figures, A, B, and C, show three examples of binary trees having six pendent edges. All the binary trees having six leaf nodes come under this category.
7. Write adjacency and incidence matrix for all the graphs developed. Ans. The following tables show adjacency and incidence matrices for the graph of question no. 4:
(Figure 3)
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 is displayed. 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 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 check whether 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 8. Implement all the devised algorithms and also the algorithms discussed in the chapter. Ans . You can implement algorithms discussed in this chapter in various languages, such as C++ and Java. However, you needto know the syntax of the respective language before implementing it.
2. Consider a data set of nine elements {10, 30, 45, 54, 56, 78, 213, 415, 500} and trace the linear search algorithm to find whether the keys 30, 150, 700 are present in the data set or not. Ans. In linear search algorithm, each element in the list is compared with the given key element. If any of the elements in the list is equal to the given key element, the linear search algorithm returns TRUE, else it returns FALSE .Let us apply linear search to find the key element 30 in the given list. Take the first element 10 from the list and compare it with the key element 30. Clearly the two elements are not equal. Take the next element 30 from the list and compare it with the key element 30. Clearly, the two elements are equal. The algorithm returns the TRUE value, and the algorithm is terminated. Similarly, search for the key elements 150 and 700. At the end of the search, you will find that the key elements 150 and700 are not found in the list. 3. Trace the binary search algorithm on the same data set and same key elements of problem 2. Ans Binary search algorithm can be applied only to the sorted list of elements. Lets first apply the binary search algorithm to find the key element 30 in the following list taken from problem 2 (FIGURE
4)
Take the middle element from the list and compare it with the key element. Clearly, the middle element 56 > key element30. As the key element is smaller than the middle element, the key element can only be present in the left sub list that is as follows:
(FIGURE 4)
Again, take the middle element from this list and compare it with the key element. Clearly, the middle element 45 > key element 30. As the key element is smaller than the middle element, the key element can only be present in the left sub list that is as follows:
(FIGURE 4)
Again, take the middle element from this list and compare it with the key element. Clearly middle element 30= key element 30, therefore, the binary search algorithm returns a TRUE value and the algorithm is terminated.
Similarly, search for the key elements 150 and 700. At the end of the search, you will find that the key elements 150 and700 are not found in the list.
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 is defined as follows: Bubble sort: In the bubble sort technique two elements are compared at a time and if the two elements are not in ascending order these elements are interchanged. This process is repeatedly performed throughout the given list until the list is completely sorted. To sort a list of n elements using bubble sort you need to make a total of (n-1)2comparisons. Quick sort: The basic idea underlying quick sort is to allow a specific element 'a' within the list 'x' to find its proper position 'j'. The proper position 'j' is found such that it satisfies the following 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 finally sorted 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 element of 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 then compared two at a time and if the two elements are not in ascending order, these elements are interchanged. Now, a new value of k is chosen which is smaller than the previous value of k and the process is repeated again. This process is repeated until the value of k is set to 1 so that the sub list consisting of the entire list is sorted. 5.
Hand simulate Insertion Sort on the data set {13, 45, 12, 9, 1, 10, 40} Ans. Let us apply Insertion Sort algorithm on the given list: (figure
5)
Note The figure 4.1 given on page 41 of the book is incorrect. It shows the steps for straight selection sort.
6. Implement all the algorithms designed in the chapter. ANS . You can implement algorithms discussed in this chapter in various languages, such as C++ and Java. However, you needto know the syntax of the respective language before implementing it.
{(12),1,5,7,10,9,8,15,19} {8,1,5,7,10,9,(12),15,19} {(7),1,5,8,10,9}{12}{(15),19} {5,1,(7),8,10,9}{12}{15,19} {(5),1}{7}{(8),10,9}{12}{15}{19} {1,(5)}{7}{(8),9,10}{12}{15}{19 }{1,(5)}{7}{(8),9,10}{12}{15}{19} {1}{5}{7}{8}{(9),10}{12}{15}{19 }{1}{5}{7}{8}{9}{10}{12}{15}{19} 3.Implement all the algorithms designed in this chapter. Ans.You can implement algorithms discussed in this chapter in various languages, such as C++ and Java. However, you need to know the syntax of the respective language before implementing it. 4.Trace out the algorithm Max Min on a data set consisting of at least 8 elements. Ans. Steps to perform Max Min on a data set (2,4,6,3,8,1,9,7) are :(2,4,6,3) (8,1,9,7) ((2,4)(6,3)) ((8,1)(9,7)) In sub list (4,6), max is 6 and min is 4. In sub list (8,9), max is 9 and min is 8. Comparing max and min values of sub list (2,4) and sub list (6,3), value of max is 6 and min is 2. Therefore, for sub list (2,4,6,3) max is 6 and min is 2. Similarly, comparing max and min values of sub list (8,1) and sub list (9,7), value of max is 9 and min is 1. Therefore, for sub list (8,1,9,7) max is 9 and min is 1. Finally, comparing max and min values of sub list (2,4,6,3) and sub list (8,1,9,7), value of max is 9 and min is 1. 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 7.When is it appropriate to use recursion? Ans.Recursion is used for repetitive computations in which each action is stated in terms of previous calculation results.
Number of nodes at the last (n) level is exactly equal to 2 n . All leaf nodes are at the same level. A full binary tree is always a complete binary tree.
3.What is the maximum number of nodes in the binary tree of level 7, 8, and 9?
Ans.The maximum number of nodes in the binary tree is calculated by 2 l+1- 1 where l is the level of the binary tree .The maximum number of nodes for level 7, 2 7+1- 1 = 255 The maximum number of nodes for level 8, 2 8+1- 1 = 511 The maximum number of nodes for level 9, 2 9+1- 1 = 1023 4. What is the wastage of memory for a binary tree with 16 nodes represented in a 1D array, 2D array, and a linkedrepresentation? Ans. a) For a 1D array, the formula for calculating percentage of memory utilization is:(n -1/2l+1- 1)*100 where n represents the number of nodes and l represents the depth of the tree. However, in the givenquestion, the depth has not been specified. Therefore, the percentage memory utilization cannot be calculated.b) For a 2D array, the percentage of memory utilization is: (n -1/n2)*100 = (16 -1/162)*100 = 5.86% Therefore, the wastage of memory in 2D array is 100 - 5.86 = 94.14% c) For a linked list, the percentage of memory utilization is:(n -1/2n)*100 = (16 -1/2*16)*100 = 46.88% Therefore, the wastage of memory in 1D is 100 - 46.88 = 53.13% 5.For at least 5 binary trees of different depths greater than or equal to 6 of your choice, obtain the preorder, postorder and inorder sequences. Ans. The following figure shows a binary tree with 14 nodes where A is the root node: (
fIGURE 6)
The preorder traversal sequence for the above binary tree is:ABDHKMNLECFIJGThe infix notation for the above binary tree is:MKNHLDBEAIFJCGThe postorder notation for the above binary tree is:MNKLHDEBIJFGCA