Presentation is loading. Please wait.

Presentation is loading. Please wait.

Catie Welsh April 20, 2011.  Program 4 due Wed, April 27 th by 11:59pm  Final exam, comprehensive ◦ Friday, May 6th, 12pm  No class Friday - Holiday.

Similar presentations


Presentation on theme: "Catie Welsh April 20, 2011.  Program 4 due Wed, April 27 th by 11:59pm  Final exam, comprehensive ◦ Friday, May 6th, 12pm  No class Friday - Holiday."— Presentation transcript:

1 Catie Welsh April 20, 2011

2  Program 4 due Wed, April 27 th by 11:59pm  Final exam, comprehensive ◦ Friday, May 6th, 12pm  No class Friday - Holiday 2

3 3

4  Search Algorithms 4

5  The array itself is referred to by the name scores (in this particular case) 5 01234 68735710294 Indices the array scores scores[3]

6 System.out.println("Enter 5 basketball scores:"); int[] scores = new int[5]; int scoreSum = 0; for (int i = 0; i < scores.length; i++) { scores[i] = keyboard.nextInt(); scoreSum += scores[i]; } double average = (double) scoreSum / scores.length; System.out.println("Average score: " + average); for (int i = 0; i < scores.length; i++) { if (scores[i] > average) System.out.println(scores[i] + ": above average"); else if (scores[i] < average) System.out.println(scores[i] + ": below average"); else System.out.println(scores[i] + ": equal to the average"); } 6

7  Given an array of numbers, sort the numbers into ascending order  Input array:  Sorted array: 7 4739628 2346789

8 public static void printArray(int[] array) { for(int i = 0; i < array.length; i++) System.out.print(array[i] + " "); System.out.println( ); } 8

9  Get in groups of 2-3 people  Write an algorithm to search for an item in an unsorted list  Start with find the index of 5 in the list ◦ 3 6 2 1 7 8 5 9 10 3  Then turn that into a Java method with the following header: public int findIndex(int x, int[] array)  Finally, think about a more efficient way to do that with a sorted array – write pseudocode  Hand in with names on it 9

10 public int findIndex(int x, int[] array) { for(int i =0; i< array.length; i++) { if(array[i] == x) return i; } return -1; } 10

11  Do we need to start at the beginning and look all the way through?  What if we start in the middle of the array? ◦ int midPoint = (array.length / 2);  Since the array is sorted: ◦ If array[midPoint] > x, we know x must be in first half of array ◦ Else if array[midPoint] > x, x must be in 2 nd half of array ◦ Else if array[midPoint] == x, return midPoint  This is called a binary search 11

12 public int binarySearch(int x, int[] array) { int min= 0; int max= array.length-1; while (min <= max) { int mid = (min+ max) / 2; if(array[mid] > x) max = mid-1; else if(array[mid] < x) min = mid + 1; else//must be equal return mid; } return -1; } 12

13  Review of Arrays, Inheritance and Sorting/Search Algorithms 13


Download ppt "Catie Welsh April 20, 2011.  Program 4 due Wed, April 27 th by 11:59pm  Final exam, comprehensive ◦ Friday, May 6th, 12pm  No class Friday - Holiday."

Similar presentations


Ads by Google