Questions
17 of 59
1What is a Graph? Define Vertex, Edge, Degree.
2What is the difference between Directed and Undirected Graphs?
3What is a Weighted Graph?
4What is a Cyclic vs Acyclic Graph?
5What is the difference between a Tree and a Graph?
6Explain Adjacency Matrix. What are its pros and cons?
7Explain Adjacency List. What are its pros and cons?
8Which representation is better for Sparse vs Dense graphs?
9Explain Breadth-First Search (BFS). What data structure does it use?
10Explain Depth-First Search (DFS). What data structure does it use?
11What is the time complexity of BFS and DFS?
12What is Topological Sorting? Which algorithm is used?
13How do you detect a cycle in a Directed Graph?
14How do you detect a cycle in an Undirected Graph?
15Explain Dijkstra's Algorithm. When does it fail?
16Explain Bellman-Ford Algorithm. Why is it slower than Dijkstra?
17What is the difference between Dijkstra and A* (A-star)?
18What is a Minimum Spanning Tree (MST)?
19Explain Kruskal's Algorithm. Which data structure is crucial for it?
20Explain Prim's Algorithm.
21What is the difference between Kruskal's and Prim's? When is one preferred?
22What is Union-Find (Disjoint Set Union)? Explain Path Compression and Union by Rank.
23What is a Bipartite Graph? How do you check for it?
24How do you find the shortest path in an unweighted graph?
25Explain Strongly Connected Components (Kosaraju/Tarjan).
26What is a Directed Acyclic Graph (DAG)? Why are they important in build systems?
27How do you solve a Maze using Graph algorithms?
28Explain Floyd-Warshall Algorithm (All Pairs Shortest Path).
29How do you detect a Deadlock using a Graph?
30What is the difference between Linear Search and Binary Search?
31What is the precondition for Binary Search?
32Write down the time complexities of Bubble, Selection, Insertion Sort.
33Why is Insertion Sort preferred for small or nearly sorted arrays?
34Explain Merge Sort. What is its time and space complexity?
35Explain Quick Sort. What is its worst-case complexity? How do you avoid it?
36Compare Merge Sort vs Quick Sort. When do you choose which?
37What is Heap Sort? How does it work?
38Is Heap Sort stable? Is Merge Sort stable?
39What is Counting Sort? What are its limitations?
40What is Radix Sort? How does it handle strings?
41What is the fastest possible time complexity for a comparison-based sort? Why?
42What is the difference between Internal and External Sorting?
43How do you find the k-th largest element in an array?
44How do you find the median of a stream of numbers?
45What is a Bucket Sort? When is it effective?
46Explain the concept of Stability in sorting. Why does it matter for multi-key sorting?
47What is a Persistent Data Structure?
48What is a Treap? How does it combine BST and Heap properties?
49What is a Bloom Filter? How do you calculate the False Positive rate?
50What is an LRU Cache? How do you implement it using a Hash Map and Doubly Linked List?
51What is an LFU Cache? How is it different from LRU?
52What is a Suffix Tree/Array? What string problems does it solve?
53What is a Van Emde Boas tree?
54How do you design a Data Structure that supports insert, delete, search, and getRandom in O(1)?
55What is the Median of Medians algorithm? Why is it better than random pivot selection?
56Explain the concept of Cache Oblivious algorithms.
57What is the difference between a Binary Heap and a Fibonacci Heap? Why is Fibonacci Heap theoretically faster for Dijkstra's?
58How are Data Structures used in Database Indexing? (B+ Trees, Hash Indexes)
59How does the Garbage Collector interact with data structures? (Weak references, Gen0/Gen1/Gen2)
17 / 59

What is the difference between Dijkstra and A* (A-star)?

Difficulty: 6/10
graph search, heuristics, algorithm complexity

Dijkstra vs A*

Dijkstra uses only the known cost from the source, while A* adds a heuristic estimate of the remaining cost to the target. A* prioritizes nodes using f(n)=g(n)+h(n). With an admissible heuristic that never overestimates the remaining cost, A* can find an optimal path while often exploring substantially fewer nodes than Dijkstra.

javascript
  1. 1

    Dijkstra is effectively A* with h(n)=0.

  2. 2

    A* requires a useful heuristic for its performance advantage.

  3. 3

    An admissible heuristic preserves optimality under standard conditions.

  4. 4

    A* is widely used in pathfinding and navigation.

  5. 5

    Dijkstra is preferable when there is no meaningful target-directed heuristic.

Scenario Questions

0-2 years experience

  1. 1We need the shortest path on a small grid where every move costs the same. Would you pick Dijkstra or A*, and why?
  2. 2If you run Dijkstra on a graph with all edge weights equal to 1, what does it compute compared to A* with a zero heuristic?
  3. 3Imagine a simple navigation feature that only finds routes between two points with no traffic data. Which algorithm would you choose and what changes would you make to implement it?

2-5 years experience

  1. 1Our game uses Dijkstra for pathfinding and is lagging with many agents on a large map. Walk me through how you'd refactor it to use A* and what pitfalls to watch for.
  2. 2After switching to A* we observed some routes longer than the optimal ones. What could cause A* to return suboptimal paths compared to Dijkstra?
  3. 3We have a pre‑computed straight‑line distance heuristic for each node. How would you integrate it into the search, and what trade‑offs does it introduce versus a pure Dijkstra approach?

5-8 years experience

  1. 1Design a routing microservice that must handle millions of concurrent shortest‑path queries on a road network with dynamic traffic weights. How do you decide between Dijkstra, A*, or a hybrid, and how would you scale the solution?
  2. 2Explain how you would modify A* to guarantee optimality when the heuristic is not admissible, and discuss the performance impact at scale.
  3. 3Our system currently caches results of recent Dijkstra runs. If we switch to A*, what changes are needed in the cache invalidation strategy, and how does heuristic consistency affect cache hit rates?

8+ years experience

  1. 1We are migrating a legacy navigation stack that uses Dijkstra to a new platform requiring real‑time routing with frequent updates and multiple vehicle types. Outline an architecture plan to gradually replace Dijkstra with A*, covering backward compatibility, testing, and long‑term maintainability.
  2. 2Several teams rely on exact shortest‑path guarantees while others accept approximate routes for speed. How would you create a shared library or service that lets each team choose Dijkstra or A* with clear contracts, and what governance processes would you establish?

Follow-up Questions

  • What happens if the heuristic overestimates the true cost?
  • How would negative edge weights affect each algorithm?
  • Can you compare their worst‑case time and space complexities?
Share

Share via WhatsApp, X, Facebook, LinkedIn or copy link. Open Graph preview enabled.