It provides theoretical explanations for new systems, techniques, and databases like GFS and HDFS (Google and Hadoop file systems), MapReduce, Cassandra, Neo4j, and MongoDB; outlines traditional algorithms like mergesort
, B-trees, and hashing; discusses the foundations of different technologies and use cases for them; and details physical storage hardware like hard disk drives, solid-state drives, and magnetoresistive RAM to understand how they function and affect the complexity, performance, and capabilities of existing storage and analytics algorithms.
The topics covered by the course are the following: algorithm complexity analysis, elementary data structures (arrays and lists), abstract data structures (stacks, queues, priority queues, trees), search algorithms (binary search, binary search trees, AVL and 2-3 trees, tries, random search), sorting algorithms (elementary algorithms, quicksort, mergesort
, heap sort), graphs (representation, search algorithms, MST).
The easiest divide-and-conquer algorithms are probably the quicksort and mergesort
Mellin transforms and asymptotics: the mergesort
From the most efficient sorting algorithms MergeSort
, HeapSort and QuickSort, we selected the last one for the reason of its simple implementation.
Illustrate with an example how Mergesort
uses Divide- were answered and-Conquer method to sort an array easily 2.
Clearly the pipeline architectural specification of sort suggests that a mergesort
is suitable for use with the pipeline architecture.
for n [is greater than or equal to] 2, with [M.sub.0] = [M.sub.1] = 0, which defines the number of comparisons to sort an array of n keys with mergesort
in the worst case [Flajolet and Golin 1994].
Program Query Us LS SSS Suc Term append (g,g,f) 0.03 0.17 0.03 + + + + append (f,f,g) 0.04 0.36 0.04 + + + + list (g) 0.02 0.06 0.03 + + + + fold (g,g,f) 0.04 0.29 0.03 + + + + lte none 0.03 0.14 0.04 + + + + map (g,f) 0.04 0.15 0.04 + + + + member (f,g) 0.02 0.09 0.01 + + + + mergesort
(g,f) 0.27 36.0 0.04 + mergesort_ap (g,f,f) 0.34 27.96 0.07 + + + + naive_rev (g,f) 0.04 0.32 0.02 + + + + ordered (g) 0.03 0.21 0.02 + + + + overlap (g,g) 0.05 0.23 0.03 + + + + permutation (g,f) 0.13 1.39 0.07 + + + + quicksort (g,f) 0.28 129.48 0.05 + + + + select (f,g,f) 0.03 0.14 0.01 + + + + subset (g,g) 0.05 0.33 0.06 + + + + subset (f,g) 0.07 0.33 0.06 - sum (f,f,g) 0.02 0.12 0.02 + + + + Table III.
All students had been previously using TRAKLA2 during the course to complete three assignment rounds related to basic data structures (e.g., lists and stacks), algorithm analysis, sorting algorithms (i.e., insertion sort, quicksort, and mergesort
), and binary tree traversing.