Compare arrays, linked lists, hash tables, trees
Company: NVIDIA
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: easy
Interview Round: Technical Screen
Answer the following computer-science fundamentals questions:
1) What are the time complexities (Big-O) of common sorting algorithms (e.g., bubble sort, insertion sort, selection sort, merge sort, quicksort, heap sort) in best/average/worst cases?
2) Compare arrays vs. linked lists. What are the time complexities of accessing an element, inserting at the head, and inserting in the middle?
3) Describe the full step-by-step process of inserting an element at the head of a dynamic array (e.g., vector/ArrayList), including what happens when the array needs to grow.
4) What is a hash table? Describe its underlying data structure and how collisions are handled.
5) What is the difference between a “hash table” and a “hash map” (conceptually and, if relevant, in common languages such as Java)?
6) What is the difference between a binary tree and a binary search tree (BST)?
Quick Answer: Evaluates understanding of foundational data structures and algorithmic complexity—arrays, linked lists, dynamic arrays, hash tables/maps, trees—and common sorting algorithms.