BFS guarantees finding the shortest path in an unweighted graph because it explores nodes in _______ order.

  • Increasing
  • Lexicographical
  • Non-decreasing
  • Non-increasing
BFS guarantees finding the shortest path in an unweighted graph because it explores nodes in increasing order. As it systematically traverses nodes level by level, the first time a node is encountered, it is reached through the shortest path.

How can the longest common substring problem be extended to handle multiple strings?

  • Apply the algorithm separately to each pair of strings and combine the results.
  • Extend dynamic programming to a multidimensional array to account for multiple strings.
  • Longest common substring problem cannot be extended to handle multiple strings.
  • Utilize greedy algorithms to find common substrings among multiple strings.
To handle multiple strings in the longest common substring problem, dynamic programming can be extended to a multidimensional array. This array helps store the common substrings for each pair of strings, and the results can then be combined.

The Longest Increasing Subsequence problem can be efficiently solved using _______.

  • Binary Search
  • Bubble Sort
  • Depth-First Search
  • QuickSort
The Longest Increasing Subsequence (LIS) problem can be efficiently solved using Binary Search. The binary search approach allows us to find the length of the LIS in an optimized way, reducing the time complexity.

The time complexity of the dynamic programming solution for the coin change problem is _______.

  • O(n * m)
  • O(n log n)
  • O(n)
  • O(n^2)
The time complexity of the dynamic programming solution for the coin change problem is O(n * m), where 'n' is the target amount and 'm' is the number of coin denominations. This is because the dynamic programming table has dimensions n x m, and each entry is filled in constant time.

Suppose you are designing a database system where frequent insertions and deletions are expected, but the overall tree structure needs to remain balanced. Which type of tree would you choose and why?

  • AVL Tree
  • B-Tree
  • Binary Search Tree (BST)
  • Red-Black Tree
In this scenario, a Red-Black Tree would be chosen. Red-Black Trees provide a good balance between the search and insertion/deletion operations, ensuring that the tree remains balanced. Their self-balancing property makes them suitable for scenarios with frequent modifications while maintaining a relatively balanced structure.

Compare Insertion Sort with Bubble Sort in terms of their algorithmic approach.

  • Both are comparison-based sorting algorithms
  • Bubble Sort is more efficient for large datasets
  • Insertion Sort has a quadratic time complexity
  • Insertion Sort uses a divide and conquer approach
Both Insertion Sort and Bubble Sort are comparison-based sorting algorithms, but their approaches differ. Insertion Sort builds the sorted part of the array one element at a time, while Bubble Sort repeatedly steps through the list.

In A* search, what role do heuristic functions play in guiding the search process?

  • Heuristic functions are applied only to the start node
  • Heuristic functions determine the optimal path
  • Heuristic functions have no impact on the search process
  • Heuristic functions provide an estimate of the remaining cost
Heuristic functions in A* search provide an estimate of the remaining cost from a given node to the goal. This estimate guides the algorithm to prioritize paths that seem more promising in reaching the goal efficiently.

How is the next number in the Fibonacci sequence generated from the previous two numbers?

  • Addition of the two preceding numbers.
  • Division of the two preceding numbers.
  • Multiplication of the two preceding numbers.
  • Subtraction of the two preceding numbers.
The next number in the Fibonacci sequence is generated by adding the two preceding numbers. For example, if the last two numbers are 'a' and 'b', then the next number is 'a + b'. This recurrence relation defines the Fibonacci sequence.

How does the performance of regular expression matching change with the complexity of the pattern and input text?

  • Performance degrades exponentially with the complexity of the pattern and input text.
  • Performance improves as both pattern and input text become more complex.
  • Performance is independent of the pattern complexity but depends on the input text complexity.
  • Performance remains constant regardless of the complexity of the pattern and input text.
The performance of regular expression matching typically degrades exponentially with the complexity of both the pattern and input text. More complex patterns and longer input texts can lead to significantly increased processing time.

Can LCS be applied to strings of different lengths? Why or why not?

  • No, because it can only be applied to arrays, not strings.
  • No, because it only works on strings of equal lengths.
  • Yes, as long as the algorithm is modified to handle different lengths.
  • Yes, without any modification.
Yes, the longest common subsequence (LCS) algorithm can be applied to strings of different lengths. It involves modifying the dynamic programming approach to handle the differences in lengths by considering all possible pairs of substrings and building the LCS table accordingly.