Advanced Algorithms and Data Structures

by Marcello La Rocca · 1st Edition · 2021

An in-depth exploration of advanced data structures and algorithms: spatial data structures, heuristics, optimization, and specialized DS.

442Extracted Problems
74Chapters
0Linked to DB
442Book Total
AdvancedSpatialOptimizationDS
442 shown
  • 1.1Implement interpolation search
    Search
    Medium
    1.2Implement ternary search
    Search
    Easy
    1.3Sort numbers with limited range using counting sort
    Sorting
    Medium
    1-4Exercise 1.4
    Medium
    1-5Exercise 1.5
    Hard
    1-6Exercise 1.6
    Easy
  • 2.1Build a k-d tree for k-nearest neighbor search
    SpatialKDT
    Hard
    2.2Implement quadtree for 2D collision detection
    Spatial
    Hard
    2.3Interval tree for overlapping intervals
    Tree
    Medium
    2-4Exercise 2.4
    Medium
    2-5Exercise 2.5
    Hard
    2-6Exercise 2.6
    Easy
  • 3.1Implement simulated annealing for TSP
    Heuristics
    Hard
    3.2Genetic algorithm for knapsack problem
    HeuristicsGA
    Hard
    3.3Approximation algorithm for vertex cover
    Approximation
    Medium
    3-4Exercise 3.4
    Medium
    3-5Exercise 3.5
    Hard
    3-6Exercise 3.6
    Easy
  • 4.1Implement B-tree with insert and search
    TreeBTree
    Hard
    4.2Construct a suffix tree for a string
    StringsSuffixTree
    Hard
    4.3Implement 2D BIT for range sum queries
    FenwickTree
    Medium
    4-4Exercise 4.4
    Medium
    4-5Exercise 4.5
    Hard
    4-6Exercise 4.6
    Easy
  • 5.1Dinic's algorithm for max flow
    GraphMaxFlow
    Hard
    5.2Hopcroft-Karp for max bipartite matching
    GraphBipartite
    Hard
    5.3Implement min-cost max flow
    GraphMinCostFlow
    Hard
    5-4Exercise 5.4
    Medium
    5-5Exercise 5.5
    Hard
    5-6Exercise 5.6
    Easy
  • 6.1Branch and bound for TSP
    Optimization
    Hard
    6.2Implement simple SAT solver with DPLL
    SAT
    Hard
    6.3Constraint satisfaction for N-Queens
    CSP
    Medium
    6-4Exercise 6.4
    Medium
    6-5Exercise 6.5
    Hard
    6-6Exercise 6.6
    Easy
  • 7-1Approximation Problem 1
    Easy
    7-2Approximation Problem 2
    Easy
    7-3Approximation Problem 3
    Medium
    7-4Approximation Problem 4
    Medium
    7-5Approximation Problem 5
    Hard
    7-6Exercise 7.6
    Easy
  • 8-1Randomized Algorithms Problem 1
    Easy
    8-2Randomized Algorithms Problem 2
    Easy
    8-3Randomized Algorithms Problem 3
    Medium
    8-4Randomized Algorithms Problem 4
    Medium
    8-5Randomized Algorithms Problem 5
    Hard
    8-6Exercise 8.6
    Easy
  • 9-1Approximation Problem 1
    Easy
    9-2Approximation Problem 2
    Easy
    9-3Approximation Problem 3
    Medium
    9-4Approximation Problem 4
    Medium
    9-5Approximation Problem 5
    Hard
    9-6Exercise 9.6
    Easy
  • 10-1Randomized Algorithms Problem 1
    Easy
    10-2Randomized Algorithms Problem 2
    Easy
    10-3Randomized Algorithms Problem 3
    Medium
    10-4Randomized Algorithms Problem 4
    Medium
    10-5Randomized Algorithms Problem 5
    Hard
    10-6Exercise 10.6
    Easy
  • 11-1Approximation Problem 1
    Easy
    11-2Approximation Problem 2
    Easy
    11-3Approximation Problem 3
    Medium
    11-4Approximation Problem 4
    Medium
    11-5Approximation Problem 5
    Hard
    11-6Exercise 11.6
    Easy
  • 12-1Randomized Algorithms Problem 1
    Easy
    12-2Randomized Algorithms Problem 2
    Easy
    12-3Randomized Algorithms Problem 3
    Medium
    12-4Randomized Algorithms Problem 4
    Medium
    12-5Randomized Algorithms Problem 5
    Hard
    12-6Exercise 12.6
    Easy
  • 13-1Approximation Problem 1
    Easy
    13-2Approximation Problem 2
    Easy
    13-3Approximation Problem 3
    Medium
    13-4Approximation Problem 4
    Medium
    13-5Approximation Problem 5
    Hard
    13-6Exercise 13.6
    Easy
  • 14-1Randomized Algorithms Problem 1
    Easy
    14-2Randomized Algorithms Problem 2
    Easy
    14-3Randomized Algorithms Problem 3
    Medium
    14-4Randomized Algorithms Problem 4
    Medium
    14-5Randomized Algorithms Problem 5
    Hard
    14-6Exercise 14.6
    Easy
  • 15-1Approximation Problem 1
    Easy
    15-2Approximation Problem 2
    Easy
    15-3Approximation Problem 3
    Medium
    15-4Approximation Problem 4
    Medium
    15-5Approximation Problem 5
    Hard
    15-6Exercise 15.6
    Easy
  • 16-1Randomized Algorithms Problem 1
    Easy
    16-2Randomized Algorithms Problem 2
    Easy
    16-3Randomized Algorithms Problem 3
    Medium
    16-4Randomized Algorithms Problem 4
    Medium
    16-5Randomized Algorithms Problem 5
    Hard
    16-6Exercise 16.6
    Easy
  • 17-1Approximation Problem 1
    Easy
    17-2Approximation Problem 2
    Easy
    17-3Approximation Problem 3
    Medium
    17-4Approximation Problem 4
    Medium
    17-5Approximation Problem 5
    Hard
    17-6Exercise 17.6
    Easy
  • 18-1Randomized Algorithms Problem 1
    Easy
    18-2Randomized Algorithms Problem 2
    Easy
    18-3Randomized Algorithms Problem 3
    Medium
    18-4Randomized Algorithms Problem 4
    Medium
    18-5Randomized Algorithms Problem 5
    Hard
    18-6Exercise 18.6
    Easy
  • 19-1Approximation Problem 1
    Easy
    19-2Approximation Problem 2
    Easy
    19-3Approximation Problem 3
    Medium
    19-4Approximation Problem 4
    Medium
    19-5Approximation Problem 5
    Hard
    19-6Exercise 19.6
    Easy
  • 20-1Randomized Algorithms Problem 1
    Easy
    20-2Randomized Algorithms Problem 2
    Easy
    20-3Randomized Algorithms Problem 3
    Medium
    20-4Randomized Algorithms Problem 4
    Medium
    20-5Randomized Algorithms Problem 5
    Hard
    20-6Exercise 20.6
    Easy
  • 21-1Approximation Problem 1
    Easy
    21-2Approximation Problem 2
    Easy
    21-3Approximation Problem 3
    Medium
    21-4Approximation Problem 4
    Medium
    21-5Approximation Problem 5
    Hard
    21-6Exercise 21.6
    Easy
  • 22-1Randomized Algorithms Problem 1
    Easy
    22-2Randomized Algorithms Problem 2
    Easy
    22-3Randomized Algorithms Problem 3
    Medium
    22-4Randomized Algorithms Problem 4
    Medium
    22-5Randomized Algorithms Problem 5
    Hard
    22-6Exercise 22.6
    Easy
  • 23-1Approximation Problem 1
    Easy
    23-2Approximation Problem 2
    Easy
    23-3Approximation Problem 3
    Medium
    23-4Approximation Problem 4
    Medium
    23-5Approximation Problem 5
    Hard
    23-6Exercise 23.6
    Easy
  • 24-1Randomized Algorithms Problem 1
    Easy
    24-2Randomized Algorithms Problem 2
    Easy
    24-3Randomized Algorithms Problem 3
    Medium
    24-4Randomized Algorithms Problem 4
    Medium
    24-5Randomized Algorithms Problem 5
    Hard
    24-6Exercise 24.6
    Easy
  • 25-1Approximation Problem 1
    Easy
    25-2Approximation Problem 2
    Easy
    25-3Approximation Problem 3
    Medium
    25-4Approximation Problem 4
    Medium
    25-5Approximation Problem 5
    Hard
    25-6Exercise 25.6
    Easy
  • 26-1Randomized Algorithms Problem 1
    Easy
    26-2Randomized Algorithms Problem 2
    Easy
    26-3Randomized Algorithms Problem 3
    Medium
    26-4Randomized Algorithms Problem 4
    Medium
    26-5Randomized Algorithms Problem 5
    Hard
    26-6Exercise 26.6
    Easy
  • 27-1Approximation Problem 1
    Easy
    27-2Approximation Problem 2
    Easy
    27-3Approximation Problem 3
    Medium
    27-4Approximation Problem 4
    Medium
    27-5Approximation Problem 5
    Hard
    27-6Exercise 27.6
    Easy
  • 28-1Randomized Algorithms Problem 1
    Easy
    28-2Randomized Algorithms Problem 2
    Easy
    28-3Randomized Algorithms Problem 3
    Medium
    28-4Randomized Algorithms Problem 4
    Medium
    28-5Randomized Algorithms Problem 5
    Hard
    28-6Exercise 28.6
    Easy
  • 29-1Approximation Problem 1
    Easy
    29-2Approximation Problem 2
    Easy
    29-3Approximation Problem 3
    Medium
    29-4Approximation Problem 4
    Medium
    29-5Approximation Problem 5
    Hard
    29-6Exercise 29.6
    Easy
  • 30-1Randomized Algorithms Problem 1
    Easy
    30-2Randomized Algorithms Problem 2
    Easy
    30-3Randomized Algorithms Problem 3
    Medium
    30-4Randomized Algorithms Problem 4
    Medium
    30-5Randomized Algorithms Problem 5
    Hard
    30-6Exercise 30.6
    Easy
  • 31-1Approximation Problem 1
    Easy
    31-2Approximation Problem 2
    Easy
    31-3Approximation Problem 3
    Medium
    31-4Approximation Problem 4
    Medium
    31-5Approximation Problem 5
    Hard
    31-6Exercise 31.6
    Easy
  • 32-1Randomized Algorithms Problem 1
    Easy
    32-2Randomized Algorithms Problem 2
    Easy
    32-3Randomized Algorithms Problem 3
    Medium
    32-4Randomized Algorithms Problem 4
    Medium
    32-5Randomized Algorithms Problem 5
    Hard
    32-6Exercise 32.6
    Easy
  • 33-1Approximation Problem 1
    Easy
    33-2Approximation Problem 2
    Easy
    33-3Approximation Problem 3
    Medium
    33-4Approximation Problem 4
    Medium
    33-5Approximation Problem 5
    Hard
    33-6Exercise 33.6
    Easy
  • 34-1Randomized Algorithms Problem 1
    Easy
    34-2Randomized Algorithms Problem 2
    Easy
    34-3Randomized Algorithms Problem 3
    Medium
    34-4Randomized Algorithms Problem 4
    Medium
    34-5Randomized Algorithms Problem 5
    Hard
    34-6Exercise 34.6
    Easy
  • 35-1Approximation Problem 1
    Easy
    35-2Approximation Problem 2
    Easy
    35-3Approximation Problem 3
    Medium
    35-4Approximation Problem 4
    Medium
    35-5Approximation Problem 5
    Hard
    35-6Exercise 35.6
    Easy
  • 36-1Randomized Algorithms Problem 1
    Easy
    36-2Randomized Algorithms Problem 2
    Easy
    36-3Randomized Algorithms Problem 3
    Medium
    36-4Randomized Algorithms Problem 4
    Medium
    36-5Randomized Algorithms Problem 5
    Hard
    36-6Exercise 36.6
    Easy
  • 37-1Approximation Problem 1
    Easy
    37-2Approximation Problem 2
    Easy
    37-3Approximation Problem 3
    Medium
    37-4Approximation Problem 4
    Medium
    37-5Approximation Problem 5
    Hard
    37-6Exercise 37.6
    Easy
  • 38-1Randomized Algorithms Problem 1
    Easy
    38-2Randomized Algorithms Problem 2
    Easy
    38-3Randomized Algorithms Problem 3
    Medium
    38-4Randomized Algorithms Problem 4
    Medium
    38-5Randomized Algorithms Problem 5
    Hard
    38-6Exercise 38.6
    Easy
  • 39-1Approximation Problem 1
    Easy
    39-2Approximation Problem 2
    Easy
    39-3Approximation Problem 3
    Medium
    39-4Approximation Problem 4
    Medium
    39-5Approximation Problem 5
    Hard
    39-6Exercise 39.6
    Easy
  • 40-1Randomized Algorithms Problem 1
    Easy
    40-2Randomized Algorithms Problem 2
    Easy
    40-3Randomized Algorithms Problem 3
    Medium
    40-4Randomized Algorithms Problem 4
    Medium
    40-5Randomized Algorithms Problem 5
    Hard
    40-6Exercise 40.6
    Easy
  • 41-1Approximation Problem 1
    Easy
    41-2Approximation Problem 2
    Easy
    41-3Approximation Problem 3
    Medium
    41-4Approximation Problem 4
    Medium
    41-5Approximation Problem 5
    Hard
    41-6Exercise 41.6
    Easy
  • 42-1Randomized Algorithms Problem 1
    Easy
    42-2Randomized Algorithms Problem 2
    Easy
    42-3Randomized Algorithms Problem 3
    Medium
    42-4Randomized Algorithms Problem 4
    Medium
    42-5Randomized Algorithms Problem 5
    Hard
    42-6Exercise 42.6
    Easy
  • 43-1Approximation Problem 1
    Easy
    43-2Approximation Problem 2
    Easy
    43-3Approximation Problem 3
    Medium
    43-4Approximation Problem 4
    Medium
    43-5Approximation Problem 5
    Hard
    43-6Exercise 43.6
    Easy
  • 44-1Randomized Algorithms Problem 1
    Easy
    44-2Randomized Algorithms Problem 2
    Easy
    44-3Randomized Algorithms Problem 3
    Medium
    44-4Randomized Algorithms Problem 4
    Medium
    44-5Randomized Algorithms Problem 5
    Hard
    44-6Exercise 44.6
    Easy
  • 45-1Approximation Problem 1
    Easy
    45-2Approximation Problem 2
    Easy
    45-3Approximation Problem 3
    Medium
    45-4Approximation Problem 4
    Medium
    45-5Approximation Problem 5
    Hard
    45-6Exercise 45.6
    Easy
  • 46-1Randomized Algorithms Problem 1
    Easy
    46-2Randomized Algorithms Problem 2
    Easy
    46-3Randomized Algorithms Problem 3
    Medium
    46-4Randomized Algorithms Problem 4
    Medium
    46-5Randomized Algorithms Problem 5
    Hard
    46-6Exercise 46.6
    Easy
  • 47-1Approximation Problem 1
    Easy
    47-2Approximation Problem 2
    Easy
    47-3Approximation Problem 3
    Medium
    47-4Approximation Problem 4
    Medium
    47-5Approximation Problem 5
    Hard
    47-6Exercise 47.6
    Easy
  • 48-1Randomized Algorithms Problem 1
    Easy
    48-2Randomized Algorithms Problem 2
    Easy
    48-3Randomized Algorithms Problem 3
    Medium
    48-4Randomized Algorithms Problem 4
    Medium
    48-5Randomized Algorithms Problem 5
    Hard
    48-6Exercise 48.6
    Easy
  • 49-1Approximation Problem 1
    Easy
    49-2Approximation Problem 2
    Easy
    49-3Approximation Problem 3
    Medium
    49-4Approximation Problem 4
    Medium
    49-5Approximation Problem 5
    Hard
    49-6Exercise 49.6
    Easy
  • 50-1Randomized Algorithms Problem 1
    Easy
    50-2Randomized Algorithms Problem 2
    Easy
    50-3Randomized Algorithms Problem 3
    Medium
    50-4Randomized Algorithms Problem 4
    Medium
    50-5Randomized Algorithms Problem 5
    Hard
    50-6Exercise 50.6
    Easy
  • 51-1Approximation Problem 1
    Easy
    51-2Approximation Problem 2
    Easy
    51-3Approximation Problem 3
    Medium
    51-4Approximation Problem 4
    Medium
    51-5Approximation Problem 5
    Hard
    51-6Exercise 51.6
    Easy
  • 52-1Randomized Algorithms Problem 1
    Easy
    52-2Randomized Algorithms Problem 2
    Easy
    52-3Randomized Algorithms Problem 3
    Medium
    52-4Randomized Algorithms Problem 4
    Medium
    52-5Randomized Algorithms Problem 5
    Hard
    52-6Exercise 52.6
    Easy
  • 53-1Approximation Problem 1
    Easy
    53-2Approximation Problem 2
    Easy
    53-3Approximation Problem 3
    Medium
    53-4Approximation Problem 4
    Medium
    53-5Approximation Problem 5
    Hard
    53-6Exercise 53.6
    Easy
  • 54-1Randomized Algorithms Problem 1
    Easy
    54-2Randomized Algorithms Problem 2
    Easy
    54-3Randomized Algorithms Problem 3
    Medium
    54-4Randomized Algorithms Problem 4
    Medium
    54-5Randomized Algorithms Problem 5
    Hard
    54-6Exercise 54.6
    Easy
  • 55-1Approximation Problem 1
    Easy
    55-2Approximation Problem 2
    Easy
    55-3Approximation Problem 3
    Medium
    55-4Approximation Problem 4
    Medium
    55-5Approximation Problem 5
    Hard
    55-6Exercise 55.6
    Easy
  • 56-1Randomized Algorithms Problem 1
    Easy
    56-2Randomized Algorithms Problem 2
    Easy
    56-3Randomized Algorithms Problem 3
    Medium
    56-4Randomized Algorithms Problem 4
    Medium
    56-5Randomized Algorithms Problem 5
    Hard
    56-6Exercise 56.6
    Easy
  • 57-1Approximation Problem 1
    Easy
    57-2Approximation Problem 2
    Easy
    57-3Approximation Problem 3
    Medium
    57-4Approximation Problem 4
    Medium
    57-5Approximation Problem 5
    Hard
    57-6Exercise 57.6
    Easy
  • 58-1Randomized Algorithms Problem 1
    Easy
    58-2Randomized Algorithms Problem 2
    Easy
    58-3Randomized Algorithms Problem 3
    Medium
    58-4Randomized Algorithms Problem 4
    Medium
    58-5Randomized Algorithms Problem 5
    Hard
    58-6Exercise 58.6
    Easy
  • 59-1Approximation Problem 1
    Easy
    59-2Approximation Problem 2
    Easy
    59-3Approximation Problem 3
    Medium
    59-4Approximation Problem 4
    Medium
    59-5Approximation Problem 5
    Hard
    59-6Exercise 59.6
    Easy
  • 60-1Randomized Algorithms Problem 1
    Easy
    60-2Randomized Algorithms Problem 2
    Easy
    60-3Randomized Algorithms Problem 3
    Medium
    60-4Randomized Algorithms Problem 4
    Medium
    60-5Randomized Algorithms Problem 5
    Hard
    60-6Exercise 60.6
    Easy
  • 61-1Approximation Problem 1
    Easy
    61-2Approximation Problem 2
    Easy
    61-3Approximation Problem 3
    Medium
    61-4Approximation Problem 4
    Medium
    61-5Approximation Problem 5
    Hard
    61-6Exercise 61.6
    Easy
  • 62-1Randomized Algorithms Problem 1
    Easy
    62-2Randomized Algorithms Problem 2
    Easy
    62-3Randomized Algorithms Problem 3
    Medium
    62-4Randomized Algorithms Problem 4
    Medium
    62-5Randomized Algorithms Problem 5
    Hard
    62-6Exercise 62.6
    Easy
  • 63-1Approximation Problem 1
    Easy
    63-2Approximation Problem 2
    Easy
    63-3Approximation Problem 3
    Medium
    63-4Approximation Problem 4
    Medium
    63-5Approximation Problem 5
    Hard
    63-6Exercise 63.6
    Easy
  • 64-1Randomized Algorithms Problem 1
    Easy
    64-2Randomized Algorithms Problem 2
    Easy
    64-3Randomized Algorithms Problem 3
    Medium
    64-4Randomized Algorithms Problem 4
    Medium
    64-5Randomized Algorithms Problem 5
    Hard
    64-6Exercise 64.6
    Easy
  • 65-1Approximation Problem 1
    Easy
    65-2Approximation Problem 2
    Easy
    65-3Approximation Problem 3
    Medium
    65-4Approximation Problem 4
    Medium
    65-5Approximation Problem 5
    Hard
    65-6Exercise 65.6
    Easy
  • 66-1Randomized Algorithms Problem 1
    Easy
    66-2Randomized Algorithms Problem 2
    Easy
    66-3Randomized Algorithms Problem 3
    Medium
    66-4Randomized Algorithms Problem 4
    Medium
    66-5Randomized Algorithms Problem 5
    Hard
    66-6Exercise 66.6
    Easy
  • 67-1Approximation Problem 1
    Easy
    67-2Approximation Problem 2
    Easy
    67-3Approximation Problem 3
    Medium
    67-4Approximation Problem 4
    Medium
    67-5Approximation Problem 5
    Hard
    67-6Exercise 67.6
    Easy
  • 68-1Randomized Algorithms Problem 1
    Easy
    68-2Randomized Algorithms Problem 2
    Easy
    68-3Randomized Algorithms Problem 3
    Medium
    68-4Randomized Algorithms Problem 4
    Medium
    68-5Randomized Algorithms Problem 5
    Hard
    68-6Exercise 68.6
    Easy
  • 69-1Approximation Problem 1
    Easy
    69-2Approximation Problem 2
    Easy
    69-3Approximation Problem 3
    Medium
    69-4Approximation Problem 4
    Medium
    69-5Approximation Problem 5
    Hard
    69-6Exercise 69.6
    Easy
  • 70-1Randomized Algorithms Problem 1
    Easy
    70-2Randomized Algorithms Problem 2
    Easy
    70-3Randomized Algorithms Problem 3
    Medium
    70-4Randomized Algorithms Problem 4
    Medium
    70-5Randomized Algorithms Problem 5
    Hard
    70-6Exercise 70.6
    Easy
  • 71-1Approximation Problem 1
    Easy
    71-2Approximation Problem 2
    Easy
    71-3Approximation Problem 3
    Medium
    71-4Approximation Problem 4
    Medium
    71-5Approximation Problem 5
    Hard
    71-6Exercise 71.6
    Easy
  • 72-1Randomized Algorithms Problem 1
    Easy
    72-2Randomized Algorithms Problem 2
    Easy
    72-3Randomized Algorithms Problem 3
    Medium
    72-4Randomized Algorithms Problem 4
    Medium
    72-5Randomized Algorithms Problem 5
    Hard
    72-6Exercise 72.6
    Easy
  • Approximation concepts and practice

    73-1Approximation Problem 1
    Easy
    73-2Approximation Problem 2
    Easy
    73-3Approximation Problem 3
    Medium
    73-4Approximation Problem 4
    Medium
    73-5Approximation Problem 5
    Hard
  • Randomized Algorithms concepts and practice

    74-1Randomized Algorithms Problem 1
    Easy
    74-2Randomized Algorithms Problem 2
    Easy
    74-3Randomized Algorithms Problem 3
    Medium
    74-4Randomized Algorithms Problem 4
    Medium
    74-5Randomized Algorithms Problem 5
    Hard