CS157: Searching and Sorting arrays - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

CS157: Searching and Sorting arrays

Description:

Imagine searching through a phone book that was not in alphabetical order. 9/22/09 ... Walk through the list ... repeat as the list gets sorted from either ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 20
Provided by: csColo
Category:

less

Transcript and Presenter's Notes

Title: CS157: Searching and Sorting arrays


1
CS157 Searching and Sorting arrays
2
Searching Sorting methodologies
  • An array is a list of items (ints, floats,
    chars, structs, 2-D)
  • Commonly, we want to search for an item in the
    list
  • Is X in the list?
  • What are the other values associated with X
  • E.g. look up userid watti, what is his GPA?
  • Usually we like to have our lists sorted in some
    way
  • Ascending
  • Descending
  • By column
  • By structure element
  • Sorted lists are also helpful for more efficient
    search algorithms
  • E.g., Binary search
  • There are many ways to sort

3
Search
  • Easiest algorithm is a Linear Search
  • Sequentially walk through the list
  • If the key is found, then done
  • Imagine searching through a phone book that was
    not in alphabetical order.

4
Search
  • Easiest algorithm is a Linear Search
  • Sequentially walk through the list
  • If the key is found, then done

define SIZE 7 int arrSIZE 1, 99, 25, 68,
92, 38, 74 int key 68 // searching for
value for (int i0 iltSIZE i ) if (
arri key ) printf( d FOUND! Position
d\n, key, i ) return // dont put return
if you want all dups printf( Sorry, d
not found in list\n, key )
5
  • Sorting

6
Sorting
  • Sorting is the process of arranging a list of
    items in a particular order
  • The sorting process is based on specific value(s)
  • sorting a list of test scores in ascending
    numeric order
  • sorting a list of people alphabetically by last
    name
  • There are many algorithms, which vary in
    efficiency, for sorting a list of items
  • We will examine three specific algorithms
  • Selection Sort
  • Insertion Sort
  • Bubble Sort

Slide from Lewis Loftus Java Software
Solutions
7
  • Sorting - Selection Sort

8
Selection Sort
  • The approach of Selection Sort
  • select a value and put it in its final place into
    the list
  • repeat for all other values
  • In more detail
  • find the smallest value in the list
  • switch it with the value in the first position
  • find the next smallest value in the list
  • switch it with the value in the second position
  • repeat until all values are in their proper places

Slide from Lewis Loftus Java Software
Solutions
9
Selection Sort
  • An example
  • original 3 9 6 1 2
  • smallest is 1 1 9 6 3 2
  • smallest is 2 1 2 6 3 9
  • smallest is 3 1 2 3 6 9
  • smallest is 6 1 2 3 6 9
  • Each time, the smallest remaining value is found
    and exchanged with the element in the "next"
    position to be filled

Slide from Lewis Loftus Java Software
Solutions
10
Swapping
  • The processing of the selection sort algorithm
    includes the swapping of two values
  • Swapping requires three assignment statements and
    a temporary storage location
  • temp first
  • first second
  • second temp

Slide from Lewis Loftus Java Software
Solutions
11
  • Sorting - Insertion Sort

12
Insertion Sort
  • The approach of Insertion Sort
  • pick any item and insert it into its proper place
    in a sorted sublist
  • repeat until all items have been inserted
  • In more detail
  • consider the first item to be a sorted sublist
    (of one item)
  • insert the second item into the sorted sublist,
    shifting the first item as needed to make room to
    insert the new addition
  • insert the third item into the sorted sublist (of
    two items), shifting items as necessary
  • repeat until all values are inserted into their
    proper positions

Slide from Lewis Loftus Java Software
Solutions
13
Insertion Sort
  • An example
  • original 3 9 6 1 2
  • insert 9 3 9 6 1 2
  • insert 6 3 6 9 1 2
  • insert 1 1 3 6 9 2
  • insert 2 1 2 3 6 9

Slide from Lewis Loftus Java Software
Solutions
14
Comparing Sorts
  • The Selection and Insertion sort algorithms are
    similar in efficiency
  • They both have outer loops that scan all
    elements, and inner loops that compare the value
    of the outer loop with almost all values in the
    list
  • Approximately n2 number of comparisons are made
    to sort a list of size n
  • We therefore say that these sorts are of order n2
  • Other sorts are more efficient order n log2 n

Slide from Lewis Loftus Java Software
Solutions
15
  • Sorting - Bubble Sort

16
Bubble Sort
  • The approach of Bubble Sort
  • Walk through the list
  • If the value at the given spot is in incorrect
    order with the next element, swap positions
  • repeat as the list gets sorted from either
    smallest to biggest or vice versa

Slide from Lewis Loftus Java Software
Solutions
17
Bubble Sort
  • An example (backwards)
  • original 3 9 6 1 2
  • round 1 3 6 1 2 9
  • round 2 3 1 2 6 9
  • round 3 1 2 3 6 9
  • round 4 1 2 3 6 9
  • (The 4th round is necessary for last 2 elements)

Slide from Lewis Loftus Java Software
Solutions
18
Bubble Sort
  • An example (forwards)
  • original 3 9 6 1 2
  • round 1 1 3 9 6 2
  • round 2 1 2 3 9 6
  • round 3 1 2 3 6 9
  • round 4 1 2 3 6 9
  • (The 4th round is necessary for last 2 elements)

Slide from Lewis Loftus Java Software
Solutions
19
Bubble Sort
  • Code Example backwards

define SIZE 7 int arrSIZE 1, 99, 25, 68,
92, 38, 74 for( int i1 iltSIZE i )
for( int j0 jltSIZE-i j ) if ( arrj gt
arrj1 ) swap( arr, j, j1 )
Do outer loop size-1 times
Write a Comment
User Comments (0)
About PowerShow.com