1_introduction.v3 - CS161 Introduction David Kauchak •...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: CS161 - Introduction David Kauchak • “For me, great algorithms are the poetry of computation. Just like verse, they can be terse, allusive, dense and even mysterious. But once unlocked, they cast a brilliant new light on some aspect of computing.” – Francis Sullivan • What is an algorithm? • Examples – sort a list of numbers – find a route from one place to another (cars, packet routing, phone routing, ...) – find the longest common substring between two strings – add two numbers – microchip wiring/design (VLSI) – solving sudoku – cryptography – compression (file, audio, video) – spell checking – pagerank – classify a web page – ... • What properties of algorithms are we interested in? – does it terminate? – is it correct, i.e. does it do what we think it’s supposed to do? – what are the computational costs? – what are the memory/space costs? 1 – what happens to the above with different inputs? – how difficult is it to implement and implement correctly? • Why are we interested? Most of the algorithms/data structure we will discuss have been around for a while and are implemented. Why should we study them? – For example, look at the java.util package * Hashtable * LinkedList * Stack * TreeSet * Arrays.binarySearch * Arrays.sort – Know what’s out there/possible/impossible – Know the right algorithm to use – Tools for analyzing new algorithms – Tools for developing new algorithms – interview questions? :) * Describe the algorithm for a depth-first graph traversal. * Write a function f(a, b) which takes two character string arguments and returns a string containing only the characters found in both strings in the order of a. Write a version which is O( n 2 ) and one which is O( n )....
View Full Document

This document was uploaded on 05/25/2011.

Page1 / 8

1_introduction.v3 - CS161 Introduction David Kauchak •...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online