33
© 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor: Alexander Stoytchev

© 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

Embed Size (px)

Citation preview

Page 1: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

March 10, 2006

Sorting

ComS 207: Programming I (in Java)Iowa State University, SPRING 2006Instructor: Alexander Stoytchev

Page 2: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Midterm 2: Kildee Hall, room 125

Page 3: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Tuesday Mar 21 @ 6:30 pm

Page 4: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Midterm Format

• Covers Sections 1-5 & 7

• Also, Searching and Sorting

• Format same as Midterm 1

Page 5: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Midterm Format

• True/False (10 x 1p each = 10p)• Short answer ( 5 x 2p each = 10p)• Code Snippets ( 5 x 3p each = 15p)• Other Stuff ( 3 x 5p each = 15p)• Other Stuff ( 3 x 5p each = 15p)• Program 1 (15p)• Program 2 (15p)• Program 3 (15p)• Program 4 (20p)

• TOTAL (130p)

Page 6: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Midterm Format

• You don’t need to get all 130 points to get an A

• 100 is a 100

• You must get at least 65 points in order to pass this exam

Page 7: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Quick review of last lecture

Page 8: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Arrays in Java

• Java represents 2D arrays as an array of arrays!

• In other words, a 2D integer array is really a 1D array of references to 1D integer arrays.

• The concept generalizes to N-dimensions

Page 9: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Anatomy of a 2D Array

[http://www.willamette.edu/~gorr/classes/cs231/lectures/chapter9/arrays2d.htm]

Page 10: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example of a regular 2D array

[http://livedocs.macromedia.com/coldfusion/5.0/Developing_ColdFusion_Applications/arrayStruct2.htm]

Note: In Java the first index should be 0 not 1!

Page 11: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example of a Ragged Array

[http://livedocs.macromedia.com/coldfusion/5.0/Developing_ColdFusion_Applications/arrayStruct2.htm]

Note: In Java the first index should be 0 not 1!

Page 12: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example: Ragged2Darray.java

Page 13: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Binary Search

• At each step it splits the remaining array elements into two groups

• Therefore, it is faster than the linear search

• Works only on an already SORTED array

• Thus, there is a performance penalty for sorting the array

[http://web.ics.purdue.edu/~cs154/lectures/lecture011.htm]

Page 14: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved [http://web.ics.purdue.edu/~cs154/lectures/lecture011.htm]

Example:SuccessfulBinarySearch

Page 15: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example: BinarySearch.java

Page 16: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Page 17: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Analysis of Searching Methods

• For an array of size n

• Sequential Search (Average-Case) n/2• Sequential Search (Worst-Case) n

• Binary Search (Average-Case) log(n)/2• Binary Search (Worst-Case) log(n)

Page 18: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

Sorting

Not in the Textbook

Page 19: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Insertion Sort

[http://web.ics.purdue.edu/~cs154/lectures/lecture010.htm]

0

Page 20: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved [http://web.ics.purdue.edu/~cs154/lectures/lecture010.htm]

Example:InsertionSort

Page 21: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Animations of Sorting Algoritms

• http://maven.smith.edu/~thiebaut/java/sort/demo.html

• http://www.cs.ubc.ca/spider/harrison/Java/sorting-demo.html

Page 22: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Animations for Insertion Sort

[http://maven.smith.edu/~thiebaut/java/sort/demo.html]

Page 23: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example: InsertionSort.java

Page 24: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Selection Sort

[http://web.ics.purdue.edu/~cs154/lectures/lecture010.htm]

Page 25: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example:SelectionSort

[http://web.ics.purdue.edu/~cs154/lectures/lecture010.htm]

Page 26: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example: SelectionSort.java

Page 27: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Bubble Sort

[http://web.ics.purdue.edu/~cs154/lectures/lecture010.htm]

0

Page 28: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved [http://web.ics.purdue.edu/~cs154/lectures/lecture010.htm]

Example:BubbleSort

Page 29: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Example: BubbleSort.java

Page 30: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Analysis: all three run in O(n2) time

[http://linux.wku.edu/~lamonml/algor/sort/sort.html]

Page 31: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

Analysis

• There are faster sorting algorithms Heap sort Quick sort Merge Sort

• We will not cover those but feel free to study them on your own.

• They run in O(n log n) time.

Page 32: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

O(n log n) sorting algorithms

[http://linux.wku.edu/~lamonml/algor/sort/sort.html]

Page 33: © 2004 Pearson Addison-Wesley. All rights reserved March 10, 2006 Sorting ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:

© 2004 Pearson Addison-Wesley. All rights reserved

THE END