150 likes | 267 Views
CIS3023: Programming Fundamentals for CIS Majors II Summer 2010. Sorting. “The real focus here is bringing some sort of order.” --Janet Hubbell. Course Lecture Slides 24 May 2010. Ganesh Viswanathan. Sorting. Rearrange a[0], a[1], …, a[n-1] into ascending order.
E N D
CIS3023: Programming Fundamentals for CIS Majors II Summer 2010 Sorting “The real focus here is bringing some sort of order.” --Janet Hubbell Course Lecture Slides24 May 2010 GaneshViswanathan
Sorting • Rearrange a[0], a[1], …, a[n-1] into ascending order. • When done, a[0] <= a[1] <= … <= a[n-1] • a[0], a[1],…a[n] could be integers, doubles, characters, or objects
Sorting Algorithms • Selection-based • Selection sort • Heap Sort • Insertion-based • Insertion Sort • Shell Sort • Exchange-Based • Bubble Sort • Quick Sort • Merge-based • Merge Sort All these arecomparison-basedsorting algorithms.
Selection Sort Algorithm • List is sorted by selecting a list element and moving it to its proper position. • Algorithm finds position of smallest element and moves it to the top of unsorted portion of list. • Repeats process above until entire list is sorted.
Selection Sort Algorithm (Cont’d) Figure 1: An array of 10 elements Figure 2: Smallest element of unsorted array
Selection Sort Algorithm (Cont’d) Figure 3: Swap elements list[0] and list[7] Figure 4: Array after swapping list[0] and list[7]
Selection Sort Algorithm (Cont’d) In-class exercise: Complete Selection Sort and get the array fully sorted! Show at each step: # array elements, # comparisons required, and# exchanges performed.
Insertion Sort Algorithm • Based on technique of card players to arrange a hand • Player keeps cards picked up so far in sorted order • When the player picks up a new card • Makes room for the new card • Then inserts it in its proper place
Example Steps in Insertion Sort: Inserting the FourthArray Element:
Bubble Sort Algorithm • Compares adjacent array elements • Exchanges their values if they are out of order • Smaller values bubble up to the top of the array • Larger values sink to the bottom
Bubble Sort Algorithm (Cont’d) Figure 1: Elements of array list during the first iteration Figure 2: Elements of array list during the second iteration
Bubble Sort Algorithm (Cont’d) Figure 3: Elements of array list during the third iteration Figure 4: Elements of array list during the fourth iteration
“ To iterate is human, to recurse divine. ” --L. Peter Deutsch