TGViewer
Coding Interview Resources Coding Interview Resources @crackingthecodinginterview ยท 52.2K subscribers
Post #2973 1.52K
๐Ÿš€ Coding Interview Questions with Answers โ€” Part 6

๐Ÿ“Š Sorting, Searching & Dynamic Programming

๐Ÿš€ 51. How do you implement quicksort and mergesort? 
Both are divide-and-conquer sorting algorithms.

๐Ÿ”น Quicksort 
๐Ÿ”น Idea 
1. Pick pivot
2. Partition array
3. Recursively sort halves

๐Ÿ”น Python Quicksort 

def quicksort(arr):
    if len(arr) <= 1:
        return arr

    pivot = arr[len(arr)//2]

    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]

    return quicksort(left) + middle + quicksort(right)

print(quicksort([5,2,8,1,3]))


๐Ÿ”น Complexity 
Case: Best/Average โ†’ Complexity: O(n log n) 
Case: Worst โ†’ Complexity: O(nยฒ) 

๐Ÿ”น Mergesort 
๐Ÿ”น Idea 
1. Split array
2. Sort recursively
3. Merge sorted halves

๐Ÿ”น Python Mergesort 

def mergesort(arr):
    if len(arr) <= 1:
        return arr

    mid = len(arr)//2

    left = mergesort(arr[:mid])
    right = mergesort(arr[mid:])

    return merge(left, right)

def merge(left, right):
    result = []
    i = j = 0

    while i < len(left) and j < len(right):
        if left[i] < right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1

    result.extend(left[i:])
    result.extend(right[j:])

    return result


๐Ÿ”น Complexity 
Case: All Cases โ†’ Complexity: O(n log n) 

๐Ÿ”น Interview Tip 
Mergesort is stable. Quicksort is usually faster in practice.

๐Ÿš€ 52. How do you implement binary search in a rotated sorted array? 
Example: 
Target: 0[4][5][6][7][0][1][2] 

๐Ÿ”น Key Idea 
One half is always sorted. 

๐Ÿ”น Python Solution 

def search(nums, target):
    left, right = 0, len(nums)-1

    while left <= right:
        mid = (left + right)//2

        if nums[mid] == target:
            return mid

        if nums[left] <= nums[mid]:
            if nums[left] <= target < nums[mid]:
                right = mid - 1
            else:
                left = mid + 1
        else:
            if nums[mid] < target <= nums[right]:
                left = mid + 1
            else:
                right = mid - 1

    return -1


๐Ÿ”น Complexity 
Time: O(log n) 
Space: O(1) 

๐Ÿ”น Interview Tip 
Very common medium-level interview problem.

๐Ÿš€ 53. How do you implement insertion sort and when is it useful? 
Insertion sort inserts elements into correct position.

๐Ÿ”น Python Solution 

def insertion_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i - 1

        while j >= 0 and arr[j] > key:
            arr[j+1] = arr[j]
            j -= 1

        arr[j+1] = key

    return arr


๐Ÿ”น Complexity 
Case: Best โ†’ Complexity: O(n) 
Case: Average/Worst โ†’ Complexity: O(nยฒ) 

๐Ÿ”น When Useful? 
โœ… Small datasets 
โœ… Nearly sorted arrays 
โœ… Online sorting 

๐Ÿ”น Interview Tip 
Simple but important for fundamentals.

๐Ÿš€ 54. How do you find the k-th largest element?

๐Ÿ”น Efficient Approach 
Use: Min Heap OR Quickselect 

๐Ÿ”น Heap Solution 

import heapq

def kth_largest(nums, k):
    return heapq.nlargest(k, nums)[-1]

print(kth_largest([3,2,1,5,6,4], 2))


๐Ÿ”น Output 
5 

๐Ÿ”น Complexity 
Time: O(n log k) 
Space: O(k) 

๐Ÿ”น Interview Tip 
Quickselect is often asked as optimization.

๐Ÿš€ 55. What is the difference between DFS and backtracking? 
Both use recursion, but purpose differs.

๐Ÿ”น DFS 
Goal: Traverse/search graph or tree 

๐Ÿ”น Backtracking 
Goal: Try all possibilities and undo choices 

๐Ÿ”น Example Problems 
DFS: Tree traversal, Graph traversal 
Backtracking: N-Queens, Sudoku, Permutations 

๐Ÿ”น Key Difference 
DFS: Traversal, No undo step 
Backtracking: Decision making, Includes undo step 

๐Ÿ”น Interview Tip 
Backtracking = DFS + constraint checking + undoing choices.

๐Ÿš€ 56. How do you solve the โ€œN-Queensโ€ problem? 
Place N queens so none attack each other.

๐Ÿ”น Backtracking Solution

def solve_n_queens(n):
    board = [-1] * n
    result = []
  • โค 1
More from @crackingthecodinginterview
  1. Oct 8, 2026๐ŸŽ“ ๐— ๐—ถ๐—ฐ๐—ฟ๐—ผ๐˜€๐—ผ๐—ณ๐˜ ๐—™๐—ฅ๐—˜๐—˜ ๐—–๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ๐˜€ ๐˜„๐—ถ๐˜๐—ต ๐—–๐—ฒ๐—ฟ๐˜๐—ถ๐—ณ๐—ถ๐—ฐ๐—ฎ๐˜๐—ฒ๐˜€! ๐Ÿš€๐Ÿ”ฅ Upgrโ€ฆ
  2. Oct 7, 2026๐Ÿš€ DSA Topics Every Programmer Should Know ๐Ÿ’ป๐Ÿ”ฅ ๐Ÿ“ฆ 1. Arrays โœ” Traversal โœ” Searching โœ” Sorโ€ฆ
  3. Oct 7, 2026๐Ÿš€๐—ฃ๐—ฎ๐˜† ๐—”๐—ณ๐˜๐—ฒ๐—ฟ ๐—ฃ๐—น๐—ฎ๐—ฐ๐—ฒ๐—บ๐—ฒ๐—ป๐˜ ๐—ง๐—ฟ๐—ฎ๐—ถ๐—ป๐—ถ๐—ป๐—ด | ๐—•๐—ฒ๐—ฐ๐—ผ๐—บ๐—ฒ ๐—ฎ ๐—™๐˜‚๐—น๐—น๐˜€๐˜๐—ฎ๐—ฐโ€ฆ
  4. Oct 7, 2026๐— ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ ๐—•๐—œ ๐—ณ๐—ผ๐—ฟ ๐—™๐—ฅ๐—˜๐—˜! ๐Ÿ”ฅ Learn Power BI through these FREE learninโ€ฆ
  5. Sep 29, 2026โœ… Daily Coding Habits That Make You a Better Developer ๐Ÿง ๐Ÿ’ปโœจ 1๏ธโƒฃ Code Every Day (Even 30 Mโ€ฆ
  6. Sep 29, 2026๐—™๐—ฅ๐—˜๐—˜ ๐—ฅ๐—ฒ๐˜€๐—ผ๐˜‚๐—ฟ๐—ฐ๐—ฒ๐˜€ ๐—ง๐—ผ ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป ๐—”๐—œ ๐—ถ๐—ป ๐Ÿฎ๐Ÿฌ๐Ÿฎ๐Ÿฒ๐Ÿš€ โ€‹ Explore 6 free resourceโ€ฆ
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook โ†’Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 โ†’