What is the time complexity of searching for an element in a balanced binary search tree like AVL or red-black tree?
- O(1)
- O(log n)
- O(n log n)
- O(n)
The time complexity of searching for an element in a balanced binary search tree, such as AVL or red-black tree, is O(log n), where 'n' is the number of elements in the tree. The balanced structure allows for efficient search operations, maintaining logarithmic time complexity.
A _______ is a data structure that allows elements to be inserted from one end and removed from the other end.
- Deque
- Linked List
- Queue
- Stack
A deque (double-ended queue) is a data structure that allows elements to be inserted from one end and removed from the other end. This provides flexibility in adding and removing elements from both the front and rear, making it a versatile data structure.
What is the time complexity of radix sort?
- O(d * (n + b))
- O(log n)
- O(n log n)
- O(n^2)
The time complexity of radix sort is O(d * (n + b)), where 'd' is the number of digits in the input numbers, 'n' is the number of elements, and 'b' is the base of the numeric representation.
How does the stability of Insertion Sort make it suitable for certain applications?
- Ignores equal elements
- Maintains the relative order of equal elements
- Randomly shuffles equal elements
- Sorts equal elements based on a random key
The stability of Insertion Sort ensures that the relative order of equal elements is maintained. This property is crucial in applications where maintaining the original order of equivalent elements is necessary, such as sorting a database by multiple criteria without disturbing the existing order of records.
Suppose you are developing a video game where characters need to navigate through a complex environment. Discuss the advantages and limitations of using A* search for pathfinding in this scenario.
- Advantages are minimal, but limitations are significant
- Advantages include efficient pathfinding, but limitations may arise in dynamic environments
- Both advantages and limitations are minimal
- Both advantages and limitations are significant
A* search is advantageous in video game pathfinding due to its efficiency, but it may face limitations in dynamic environments where paths change frequently. Understanding these trade-offs is crucial for optimal pathfinding in a video game with characters navigating through a complex environment.
To handle negative edge weights, one might consider using _______ to modify Dijkstra's algorithm.
- AVL Trees
- Bellman-Ford Algorithm
- Depth-First Search
- Merge Sort
To handle negative edge weights, one might consider using the Bellman-Ford Algorithm to modify Dijkstra's algorithm. The Bellman-Ford Algorithm can handle graphs with negative weight edges, unlike Dijkstra's algorithm, making it suitable for such scenarios.
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.