Algorithm & data structures lec1


Published on

Published in: Education, Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Algorithm & data structures lec1

  1. 1. Algorithm & Data Structures CSC-112 Spring 2012
  2. 2. My Profile Name:  Syed Muhammad Raza Education:  MSc Wireless Communication  LTH – Sweden , 2007-2009  BS Computer Information Sciences  PIEAS – Pakistan , 2002-2006 Contact Information:  Email: (Preferred mean of communication)  **(In subject of your email mention your semester and name, otherwise it will not be entertained)
  3. 3. Rules Take it seriously & you will prosper Take it lightly & you will doom
  4. 4. Course Overview Fundamentals of Algorithms Review of Programming Sorting and Searching Stacks Queues, Priority Queues and Circular Queues Linked List Trees Hashing Graphs and much more …..
  5. 5. Text Book No Text Book & Every Text Book
  6. 6. Recommended Books Schaum Programming with Cplusplus by Seymour Lipschutz Sams Teach Yourself Data Structures and Algorithms in 24 Hours, Lafore Robert Data structures and algorithms, Alfred V. Aho, John E. Hopcroft. Standish, Thomas A., Data Structures, Algorithms and Software Principles in C, Addison-Wesley 1995, ISBN: 0-201-59118-9 Data Structures & Algorithm Analysis in C++, Weiss Mark Allen
  7. 7. Marks Distribution Lab 25% of 100 Marks (Semester Project & Presentation) Theory 75% of 100 Marks Sessional 1 = 10 Marks Sessional 2 = 15 Marks Final Paper = 50 Marks Assignment = 15 Marks Quiz = 10 Marks (Surprise) Total = 100 Marks
  8. 8. Lets see what you got!
  9. 9. Quiz 1Marks:2Time: 15mins Explain Abstract Data Types? Explain difference between abstraction and encapsulation? If you have to write a code for swapping int values, arrays will be appropriate solution or 2D arrays?
  10. 10. Algorithm
  11. 11. Problem Solving Problem solving is the process of transforming the description of a problem into the solution of that problem by using our knowledge of the problem domain and by relying on our ability to select and use appropriate problem-solving strategies, techniques, and tools.
  12. 12. Algorithms An Algorithm is a step by step solution to a problem Why bother writing an algorithm  For your own use in the future - Dont have to rethink the problem.  So others can solve the problem, even if they know very little about the principles behind how the solution was derived.
  13. 13. Examples of Algorithms Washing machine instructions Instructions for a ready-to-assemble piece of furniture A Classic: GCD - Greatest Common Divisor - The Euclidean Algorithm
  14. 14. Washing Machine Instructions Separate clothes into white clothes and colored clothes. For white clothes:  Set water temperature knob to HOT.  Place white laundry in tub. For colored clothes:  Set water temperature knob to COLD  Place colored laundry in tub. Add 1 cup of powdered laundry detergent to the tub. Close lid and press the start button.
  15. 15. Observations There are a finite number of steps. We are capable of doing each of the instructions. When we have followed all of the steps, the washing machine will wash the clothes and then will stop. Are all of the clothes clean ? Do we want the washing machine to run until all of the clothes are clean ?
  16. 16. Refinement of the Definition Our old definition:  An algorithm is a step by step solution to a problem. Adding our observations:  An algorithm is a finite set of executable instructions that directs a terminating activity.
  17. 17. Instructions for a Ready-to-Assemble Furniture "Align the marks on side A with the grooves on Part F “ Why are these instructions typically so hard to follow ?  Lack of proper tools - instructions are not executable  Which side is A ? A & B look alike. Both line up with Part F - Ambiguous instructions.
  18. 18. Final Definition An algorithm is a finite set of unambiguous, executable instructions that directs a terminating activity.
  19. 19. History of Algorithms The study of algorithms began as a subject in mathematics. The search for algorithms was a significant activity of early mathematicians. Goal: To find a single set of instructions that could be used to solve any problem of a particular type.
  20. 20. GCD- Euclidean Algorithm Assign M and N the value of the larger and the value of the smaller of the two positive integer input values, respectively. Divide M by N and call the remainder R. If R is not 0, then assign M the value of N, assign N the value of R and return to step 2, otherwise the greatest common divisor is the value currently assigned to N.
  21. 21. Finding GCD of 24 & 9 MNR 24 9 6 963 630 So 3 is the GCD of 24 and 9. Do we need to know the theory that Euclid used to come up with this algorithm in order to use it ? What intelligence is required to find the GCD using this algorithm ?
  22. 22. Idea Behind the Algorithms Once an algorithm behind a task has been discovered  Dont need to understand the principles.  Task is reduced to following the instructions.  Intelligence is "encoded into the algorithm"
  23. 23. Algorithm Representation Syntax and Semantics  Syntax refers to the representation itself.  Semantics refers to the concept represented.