Presentation is loading. Please wait.

Presentation is loading. Please wait.

TCSS 342 Autumn 2004 Version 1.1 1 TCSS 342 Data Structures & Algorithms Autumn 2004 Ed Hong.

Similar presentations


Presentation on theme: "TCSS 342 Autumn 2004 Version 1.1 1 TCSS 342 Data Structures & Algorithms Autumn 2004 Ed Hong."— Presentation transcript:

1 TCSS 342 Autumn 2004 Version 1.1 1 TCSS 342 Data Structures & Algorithms Autumn 2004 Ed Hong

2 TCSS 342 Autumn 2004 Version 1.1 2 Course Objectives (Broad) Prepare you to be a good software engineer (Specific) Learn basic data structures and algorithms –Data structures – how data is organized – Algorithms – unambiguous sequence of steps to compute something

3 TCSS 342 Autumn 2004 Version 1.1 3 Software Design Goals

4 TCSS 342 Autumn 2004 Version 1.1 4 Course Content Data Structures Algorithms Data Structures + Algorithms = Programs Algorithm analysis – determining how long an algorithm will take to solve a problem Who cares? Aren’t computers fast enough and getting faster?

5 TCSS 342 Autumn 2004 Version 1.1 5 An Example Given an array of 1,000,000 integers, find the maximum integer in the array. Now suppose we are asked to find the kth largest element. (The Selection Problem) … 012999,999

6 TCSS 342 Autumn 2004 Version 1.1 6 Candidate Solutions + Candidate solution 1 Sort the entire array (from small to large), using Java’s Arrays.sort() Pick out the (1,000,000 – k)th element. + Candidate solution 2 Sort the first k elements. For each of the remaining (1,000,000 – k) elements, keep the k largest in an array. Pick out the smallest of the k survivors.

7 TCSS 342 Autumn 2004 Version 1.1 7 Is either solution good? Is there a better solution? How would you go about determining the answer to these questions?

8 TCSS 342 Autumn 2004 Version 1.1 8 Method 1 Code each algorithm and run them to see how long they take. Problem: How will you know if there is a better program or whether there is no better program? What will happen when the number of inputs is twice as many? Three? A hundred?

9 TCSS 342 Autumn 2004 Version 1.1 9 Method 2 Develop a model of the way computers work and compare how the algorithms behave in the model. Goal: To be able to predict performance at a coarse level. That is, to be able to distinguish between good and bad algorithms. Another benefit: when assumptions change, we can predict the effects of those changes.

10 TCSS 342 Autumn 2004 Version 1.1 10 Why algorithm analysis? As computers get faster and problem sizes get bigger, analysis will become more important. Why? The difference between good and bad algorithms will get bigger.

11 TCSS 342 Autumn 2004 Version 1.1 11 Why data structures? When programming, you are an engineer. Engineers have a bag of tools and tricks – and the knowledge of which tool is the right one for a given problem. Arrays, lists, stacks, queues, trees, hash tables, graphs.

12 TCSS 342 Autumn 2004 Version 1.1 12 Software Development Practices Modular code Appropriate commenting of code –Each method needs a comment explaining its parameters and its behavior. Debugging with integrated development environment (IDE) Incremental development Unified modeling language (UML)

13 TCSS 342 Autumn 2004 Version 1.1 13 Mathematical Background Exponents X A X B = X A+B X A / X B = X A-B (X A ) B = X AB X N +X N = 2X N 2 N +2 N = 2 N+1 Logarithms Definition: X A = B if and only if log X B = A.

14 TCSS 342 Autumn 2004 Version 1.1 14 Logarithms, continued log AB = log A + log B Proof:

15 TCSS 342 Autumn 2004 Version 1.1 15 Logarithms, Series log A/B = log A – log B log (A B ) = B log A Series binary representation of numbers

16 TCSS 342 Autumn 2004 Version 1.1 16 Series Geometric progression: for a>0, a ≠ 1

17 TCSS 342 Autumn 2004 Version 1.1 17 Boolean Logic Let P and Q be statements. “not P” is true if P is false. “P and Q” is true if both P and Q are true. “P or Q” is true if one of or both P or Q are true. “P implies Q” is true if P is false or Q is true (or both).


Download ppt "TCSS 342 Autumn 2004 Version 1.1 1 TCSS 342 Data Structures & Algorithms Autumn 2004 Ed Hong."

Similar presentations


Ads by Google