Consider a software project where multiple modules depend on each other for compilation. Explain how topological sorting can help determine the order in which these modules should be compiled.

  • Ensures compilation from the most complex module to the least complex.
  • Organizes modules based on their sizes.
  • Randomly selects modules for compilation.
  • Resolves compilation dependencies by sorting modules in an order that avoids circular dependencies.
Topological sorting is used to resolve dependencies in a directed acyclic graph (DAG). In the context of a software project, it ensures that modules are compiled in an order that avoids circular dependencies, allowing each module to be compiled only after its dependencies have been compiled.

How does a hash table handle collisions?

  • By ignoring collisions and overwriting existing values.
  • By rearranging the elements in the table.
  • By resizing the hash table to accommodate more elements.
  • By using techniques such as chaining or open addressing to resolve conflicts.
Hash tables handle collisions by employing techniques such as chaining or open addressing. Chaining involves maintaining a linked list at each bucket to store colliding elements, while open addressing involves finding the next available slot in the table.

Multidimensional arrays are arrays of _______ arrays.

  • Heterogeneous
  • Homogeneous
  • Linear
  • Non-linear
Multidimensional arrays are arrays of homogeneous arrays, meaning that each element in the outer array points to another array of the same data type.

Reversing a linked list recursively involves changing the _______ of each node.

  • Data
  • Next pointer
  • Previous pointer
  • Value
Reversing a linked list recursively involves changing the previous pointer of each node. In each recursive call, the next pointer of each node is redirected to its previous node, gradually reversing the entire list.

In the context of strings, what does the term "edit" refer to in the Edit Distance algorithm?

  • All of the above.
  • Deleting characters from a string.
  • Inserting characters into a string.
  • Modifying characters in a string.
In the context of strings and the Edit Distance algorithm, the term "edit" refers to all three operations: deleting characters, inserting characters, and modifying characters in a string. These operations are used to transform one string into another.

Which shortest path algorithm is suitable for finding the shortest path from a single source vertex to all other vertices in a weighted graph with non-negative edge weights?

  • Bellman-Ford Algorithm
  • Dijkstra's Algorithm
  • Floyd-Warshall Algorithm
  • Prim's Algorithm
Dijkstra's Algorithm is suitable for finding the shortest path from a single source vertex to all other vertices in a weighted graph with non-negative edge weights. It uses a greedy approach, iteratively selecting the vertex with the smallest known distance to the source.

Linear search examines each element in the array _______ until the desired element is found or the end of the array is reached.

  • None of the above
  • One by one
  • Randomly
  • Skip a few at a time
Linear search examines each element in the array one by one until the desired element is found or the end of the array is reached. It starts from the beginning and checks each element sequentially.

Selecting a _______ pivot element in Quick Sort can significantly reduce its time complexity.

  • Largest
  • Middle
  • Random
  • Smallest
Selecting a random pivot element in Quick Sort can significantly reduce its time complexity by minimizing the chance of encountering the worst-case scenario, leading to more balanced partitions.

One of the key advantages of merge sort is its _______ time complexity in all cases.

  • O(log n)
  • O(n log n)
  • O(n)
  • O(n^2)
One of the key advantages of merge sort is its O(n log n) time complexity in all cases. This makes it more efficient than some other sorting algorithms, especially in scenarios with large datasets.

Suppose you're designing a software tool for identifying similar images. Discuss how you would adapt algorithms for the longest common substring problem to compare image data and find common features.

  • By comparing the image sizes without analyzing the actual content.
  • By converting image data into a format suitable for string comparison and applying longest common substring algorithms.
  • By focusing only on the overall color distribution in the images.
  • By randomly selecting pixels in the images for substring comparison.
Adapting longest common substring algorithms for image comparison involves converting image data into a format suitable for string comparison. This allows for the identification of common features by analyzing substrings within the image data.