Study of an analysis of one of the most basic problems in CS - sorting. Introduction to all basic kinds of analysis of algorithms and asymptotic analysis and notations.
Discussion of recurrences and recursion trees in the context of merge sort and analyzing the performance of merge sort. It also introduces Big-O notations in the context of algorithm analysis.
Introduces and analyzes various different types of sorting algorithms. This chapter discusses their efficiency, how they compare to each other and how they are different from each other. It covers bubble sort, quick sort and selection sort. It also introduces the problem of searching, discusses linear and binary search algorithms and their efficiency through analyzing them.
Introduction to the Divide and Conquer Paradigm of solving problems, in the context of algorithm analysis using recurrences and recursion trees. The most common divide and conquer solutions are introduced - merge sort, binary search, powering a number and Fibonacci.
Introduction to a common problem in CS - the symbol-table problem and how it is solved through hashing. Discusses hashing concepts such as choosing a hash function and properties of a good hash function, collision resolution through chaining. Presents analysis of the speed of hashing operations.
You must complete all chapters before taking the course exam.
Introduces the symbol table problem. This is a very common problem in Computer Science and in compilers in particular where efficiency is very important.
Introduces the concept of hashing - a solution to the symbol table problem. If implemented well, hashing is an extremely efficient solution on average.
Talks about what happens when two elements are mapped to the same key into the hashtable. This is called a collision and the solution is to resolve the collisions by chaining.
We show how to analyze hashing with chaining. When it comes to hashing, we usually do average case analysis and we assume simple uniform hashing.
We continue with the analysis of hashing showing that good hashing implementation can be extremely efficient.
We discuss why it is important to choose your hash function really well. We continue on introducing the Division Method - a method of hashing.
We continue on talking about choosing a hash function and why it is important to really think about your heuristics and your choice. We discuss the heuristics that go into the choice of hash function. We also continue talking about the division method.
Take the chapter 5 test and unlock the Hashing badge.
Introduces the concept of hashing - a solution to the symbol table problem. If implemented well, hashing is an extremely efficient solution on average.
edit
You are making progress towards completing chapter 5 and unlocking the Hashing Badge
This badge is worth: 50 Points
No one has said anything yet!
Start the discussion by asking a question.