Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dr. Alagoz Data Structures & Algorithm Analysis in JAVA (CMPE250) Fatih Alagöz Office: ETA42 Ext.6652

Similar presentations


Presentation on theme: "Dr. Alagoz Data Structures & Algorithm Analysis in JAVA (CMPE250) Fatih Alagöz Office: ETA42 Ext.6652"— Presentation transcript:

1 Dr. Alagoz Data Structures & Algorithm Analysis in JAVA (CMPE250) Fatih Alagöz alagoz@boun.edu.tr Office: ETA42 Ext.6652 www.cmpe.boun.edu.tr/alagoz

2 Dr. Alagoz Data Structures and Algorithm Analysis in JAVA Data Structure: methods of organizing large amounts of data Eg. In the VULCAN Project, Kandilli Obs.&Res.Center will receive about 2GB/day to predict earthquakes in Turkey!!! Storage, processing, etc. 3, 2, and take off

3 Dr. Alagoz Data Structures and Algorithm Analysis in JAVA-2 Algorithm: step-by-step procedure for solving a problem in a finite amount of time. i.e. Do NOT start coding be4 analyzing the algorithm!!! Eg. The running time of ARAM algorithm was only 26 hrs, it could have taken approximately 675000 yrs Could you have done any better? Yes...

4 Dr. Alagoz Data Structures and Algorithm Analysis in JAVA-3 JAVA: relatively new language and superior (?) to C++: With being user-friendly, safe, portable, etc At the expense of: Limited I/O support. JAVA >> convert >> C++ (easy) C++ >> convert >> JAVA !!! should locate hidden traps with I/O classes first. Course Content is Language Independent but Use JAVA for implementations

5 Dr. Alagoz Course Syllabus (Review) CATALOG DATA: Data Structures &Algorithms (3+0+2) 4 Complexity, Hashing, Heap Structures, Advanced Sorting, Search Structures, Graphs, Parallel Algorithms, File organization. Prerequisite: CmpE 160

6 Dr. Alagoz Course Syllabus (Review) Textbook: M. A. Weiss, Data Structures and algorithm and Algorithm Analysis in Java, Addison Wesley, 2 nd edition 2007. (or 99 edition). References: Drozdek Adam, Data Structures and Algorithms in Java, Brooks Cole, 2001. M. T. Goodrich and R. Tamassia, Data Structures and Algorithms in Java(3/e), Wiley and Sons, 2004.

7 Dr. Alagoz Course Syllabus (Review) Teaching Team: Instructor: Fatih Alagoz TAs: Hande Ozgur Alemdar www.cmpe.boun.edu.tr GOAL: To learn the specifications, usage, implementation & analysis of advanced data structures & algorithms using JAVA. Prerequisites by topic Programming in C, C++ Fluency with the implementation of basic data structures Some background in discrete math

8 Dr. Alagoz Course Syllabus (Review) ABET category content as estimated by faculty member who prepared this course description Engineering science: 1.5 credits or 37.5 % Engineering design : 2.5 credits or 63.5 % Grading Policy (Tentative): Midterm exam 1 17.5% Midterm exam 2 17.5% Projects + Pop Quizzes + HWs 25% Final exam 40% Note: Midterm exam date will be announced a week prior to the exam!

9 Dr. Alagoz Math Review Series Summations: Logarithms and Exponents log b (xy) = log b x + log b y a (b+c) = a b a c log b (x/y) = log b x – log b y a bc = (a b ) c log b xa = alog b x a b /a c = a (b-c) log b a = log x a/log x b b = a log a b b c = a c*log a b Proof techniques: induction, counterexample, and contradiction

10 Dr. Alagoz Programming with Recursion

11 Dr. Alagoz 11 The Recursion Pattern Recursion: when a method calls itself Classic example--the factorial function: n! = 1· 2· 3· ··· · (n-1)· n Recursive definition: As a Java method: // recursive factorial function public static int recursiveFactorial(int n) { if ( n == 0 ) return 1 ; // basis case else return n * recursiveFactorial ( n- 1 ); // recursive case }

12 Dr. Alagoz 12 Content of a Recursive Method Base case(s). Values of the input variables for which we perform no recursive calls are called base cases (there should be at least one base case). Every possible chain of recursive calls must eventually reach a base case. Recursive calls. Calls to the current method. Each recursive call should be defined so that it makes progress towards a base case.

13 Dr. Alagoz 13 Visualizing Recursion Recursion trace A box for each recursive call An arrow from each caller to callee An arrow from each callee to caller showing return value Example recursion trace: recursiveFactorial(4) (3) (2) (1) (0) return1 call return1*1=1 2*1=2 3*2=6 4*6=24 final answer call

14 Dr. Alagoz 14 Example – English Rulers(*) Define a recursive way to print the ticks and numbers like an English ruler:

15 Dr. Alagoz 15 A Recursive Method for Drawing Ticks on an English Ruler(*) // draw a tick with no label public static void drawOneTick ( int tickLength ) { drawOneTick ( tickLength, - 1 ); } // draw one tick public static void drawOneTick ( int tickLength, int tickLabel ) { for ( int i = 0 ; i < tickLength ; i ++) System. out. print ( "-" ); if ( tickLabel > = 0 ) System. out. print ( " " + tickLabel ); System. out. print ( "\n" ); } public static void drawTicks ( int tickLength ) { // draw ticks of given length if ( tickLength > 0 ) {// stop when length drops to 0 drawTicks ( tickLength- 1 ); // recursively draw left ticks drawOneTick ( tickLength ); // draw center tick drawTicks ( tickLength- 1 ); // recursively draw right ticks } public static void drawRuler ( int nInches, int majorLength ) { // draw ruler drawOneTick ( majorLength, 0 ); // draw tick 0 and its label for ( int i = 1 ; i < = nInches ; i ++) { drawTicks ( majorLength- 1 ); // draw ticks for this inch drawOneTick ( majorLength, i ); // draw tick i and its label }

16 Dr. Alagoz 16 Visualizing the DrawTicks Method(*) An interval with a central tick length L >1 is composed of the following: an interval with a central tick length L-1, a single tick of length L, an interval with a central tick length L-1.

17 Dr. Alagoz 17 HWLA: HomeWorkLikeAssignment Download the JAVA tutorial from the course website http://users.cs.fiu.edu/~weiss/dsaajava2/code/ Visit www.cs.fiu.edu/^weiss for Code Availabilitywww.cs.fiu.edu/^weiss Write your first JAVA code that converts Celcius to Fahrenheit for the range [-50 50]. Introduce exception for out of the range inputs. Solve exercises


Download ppt "Dr. Alagoz Data Structures & Algorithm Analysis in JAVA (CMPE250) Fatih Alagöz Office: ETA42 Ext.6652"

Similar presentations


Ads by Google