330 likes | 473 Views
Unit 1. Sorting and Divide and Conquer. Lecture 1 Introduction to Algorithm and Sorting. What is an Algorithm ?. An algorithm is a computational procedure that takes some value, or a set of values, as input and produces some values, or a set of values, as output .
E N D
What is anAlgorithm? • An algorithm is a computational procedure that takes some value, or a set of values, as input and produces some values, or a set of values, as output. • So, it is a sequence of computational steps that transform the input into the output. • Correction: sequence -> combination
Sequential and Parallel • In sequential computation, an algorithm is a sequence of computational steps. • However, it is not true in parallel computation. • In this course, we study only algorithms in sequential computation.
Algorithms for Sorting e.g., Insertion Sort, Merge Sort
Efficiency • Running time from receiving the input to producing the output. Running time Insert Sort Merge Sort
key In the key outside of array.
How to calculate running time? • Each “line” of pseudocode requires a constant time. (In RAM model)
This loop runs n-1 times and each time runs at most 4+3(j-1) lines. This loop runs at most j-1 times and each time runs at most 3 lines.
Remark on Running Time • Running time is a function of input size. • In Turing machine model, the input size of sorting is
Divide and Conquer • Divide the problem into subproblems. • Conquer the subproblems by solving them recursively. • Combine the solutions to subproblems into the solution for original problem.
How to Solve Recurrences • Substitution method. • Recursion-tree method. • Master method.
Substitution Method • Guess the form of the solution. • Use math induction to find the constants and also show the solution works.
What we learnt in this lecture? • How to calculate running time. • How to solve recurrences. • Insertion sort and Merge sort. • Divide and conquer • Lecture Notes give you key points in each lecture. • You must read textbook after lectures in order to study well.