1 / 23

COMP 14 Introduction to Programming

COMP 14 Introduction to Programming. Miguel A. Otaduy June 4, 2004. Today. Review arrays Searching arrays for a particular value Sorting arrays. 0. 1. 2. 3. Exercises. 1. Find Sum and Average of Array 2. Determine Largest and Smallest Elements in Array. 0. 1. 2. 3. Example.

jin
Download Presentation

COMP 14 Introduction to Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP 14Introduction to Programming Miguel A. Otaduy June 4, 2004

  2. Today • Review arrays • Searching arrays for a particular value • Sorting arrays

  3. 0 1 2 3 Exercises 1. Find Sum and Average of Array 2. Determine Largest and SmallestElements in Array

  4. 0 1 2 3 Example Find Sum and Average of Array double[] sale={3.5, 4.6, 5.2, 3.8}; double sum = 0; double average;

  5. 0 1 2 3 Example Find Sum and Average of Array double[] sale={3.5, 4.6, 5.2, 3.8}; double sum = 0; for(int ind = 0; ind < sale.length; ind++) { sum = sum + sale[ind]; } double average; if(sale.length != 0) average = sum / sale.length; else average = 0.0;

  6. 0 1 2 3 Example Determining Largest/Smallest Element in Array double[] sale={3.5, 4.6, 5.2, 3.8}; int maxIndex = 0, minIndex = 0; double largestSale; double smallestSale;

  7. 0 1 2 3 Example Determining Largest/Smallest Element in Array double[] sale={3.5, 4.6, 5.2, 3.8}; int maxIndex = 0, minIndex = 0; for (int ind = 1; ind < sale.length; ind++) { if (sale[ind] > sale[maxIndex]) maxIndex = ind; else if (sale[ind] < sale[minIndex]) minIndex = ind; } double largestSale = sale[maxIndex]; double smallestSale = sale[minIndex];

  8. Searching Arrays • Find one/several particular element(s) in an array of many elements • Complexity (How Long To Search?) • find a parking space - linear • look up a word in a dictionary - complex 500K+ words in Oxford Dictionary search - very complex over 3 trillion web pages

  9. Time Complexity • Important feature in Computer Science research: • How long does an algorithm take to complete? • Given an input (e.g. an array) of size n, how long does it take for the algorithm (e.g. search for a particular value) to complete? • Linear algorithm: time = k1 * n • Quadratic algorithm: time = k2 * n2 • etc.

  10. Linear Searching • Algorithm: • Get a test value and a list of values • list can be ordered or unordered • loop through the list • repeatedly ask: Is this a match? • quit when the answer is yes (use break stmt) • if you finish all items, there is no match • Inefficient • worst time to search is the length of the list • Relatively easy to program

  11. 0 1 2 3 Example Linear Search int[] list={3, 6, 27, 8, 33, 54, 23}; int foundAt = -1, element = 33;

  12. 0 1 2 3 Example Linear Search int[] list={3, 6, 27, 8, 33, 54, 23}; int foundAt = -1, element = 33; for(int i=0; i<list.length; i++) { if(list[i] == element) { foundAt = i; break; }}

  13. Array of Objects • Declare array of Student objects (ref. variables) • Instantiate array of size 10 • Instantiate each of the Student objects • Ask for age (int) and name (String) • Instantiate object

  14. 0 1 2 3 Example Array of Student objects Student[] students; students = new Student[10]; for(int i = 1; i < students.length; i++) { //get int age //get String name students[i]=new Student(name, age); }

  15. 0 1 2 3 Example Search for student Mark int foundAt=-1; String name=“Mark”; for(int i = 1; i < students.length; i++) { if(students[i].getName().equals(name)) { fountAt=i; break; } }

  16. Binary Search • Requires ordered (sorted) list • Set searchRange to the entire list • Repeat: • pick a “test value” in the middle of searchRange • if test value == value searching for • Stop! • if test value > value searching for • searchRange = lower half of searchRange • if test value < value searching for • searchRange = upper half of searchRange

  17. Trial 1 2 4 5 12 16 19 22 26 29 32 37 41 46 50 2 4 5 12 16 19 22 26 29 32 37 41 46 50 Example Looking for 46 2 4 5 12 16 19 22 26 29 32 37 41 46 50 2 3

  18. SortingSort students by birthdate • Get a group of 5 students • Another student will sort them by birth date • Analyze the sorting strategy • Can we devise an algorithm following that strategy? • Goal: sort following a methodology • We should be able to write it as an algorithm and then program it • Demonstrate selection sort • Write algorithm

  19. Selection SortGeneral Algorithm • Scan the list to find the smallest value • Swap that value with the value in the first position in the list • Scan rest of list to find the next smallest value • Swap that value with the value in the second position in the list • And so on, until you get to the end of the list

  20. Selection SortMethods • Scan the list to find the smallest value • Swap that value with the value in the first position in the list • Scan rest of list to find the next smallest value • Swap that value with the value in the second position in the list • And so on, until you get to the end of the list loop

  21. Selection Sort • Sorts in ascending order • Can be changed to sort in descending order • look for max instead of min

  22. Homework 6 • Read/write files • Array of ints • Array of Participant objects • Next: • Sort array of ints • Sort array of participants

  23. Monday • Java applets • HTML • GUIs • Reading Assignment: • Chapter 6 (pp. 264-290) • skim Chapter 13 (pp. 725-806)

More Related