CIT 594 - PowerPoint PPT Presentation

1 / 13
About This Presentation
Title:

CIT 594

Description:

CIT 594. Basic content. CIT 594 is a continuation of CIT 591. Java will be used throughout ... A collection is a structured group of objects. Java supplies ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 14
Provided by: cisU
Category:
Tags: cit | continuation

less

Transcript and Presenter's Notes

Title: CIT 594


1
CIT 594
2
Basic content
  • CIT 594 is a continuation of CIT 591
  • Java will be used throughout
  • However, CIT 594 is not primarily a course about
    Java
  • Topics
  • Data Structures
  • Supplied by Java
  • How to create your own
  • Algorithms
  • A sampling of some better-known algorithms
  • Analysis of algorithms
  • Simple algebra is required

3
Types of Collection
  • A collection is a structured group of objects
  • Java supplies several types of Collection
  • Set cannot contain duplicate elements, order is
    not important
  • SortedSet like a Set, but order is important
  • List may contain duplicate elements, order is
    important
  • Java also supplies some collection-like things
  • Map a dictionary that associates keys with
    values, order is not important
  • SortedMap like a Map, but order is important

4
The Collections hierarchy
5
Uniformity through interfaces
  • Much of the elegance of the Collections Framework
    arises from the intelligent use of interfaces
  • For example, the Collection interface specifies
    (among many other operations)
  • boolean add(Object o)
  • boolean isEmpty()
  • boolean remove()
  • int size()
  • Object toArray()
  • Iterator iterator()

6
Creating lists in Java
  • class Cell int value Cell next
  • Cell (int v, Cell n) // constructor value
    v next n
  • Cell temp new Cell(17, null)
  • temp new Cell(23, temp)
  • temp new Cell(97, temp)
  • Cell myList new Cell(44, temp)

7
A short list of categories
  • Algorithm types we will consider include
  • Simple recursive algorithms
  • Backtracking algorithms
  • Divide and conquer algorithms
  • Dynamic programming algorithms
  • Greedy algorithms
  • Branch and bound algorithms
  • Brute force algorithms
  • Randomized algorithms

8
Example recursive algorithms
  • To count the number of elements in a list
  • If the list is empty, return zero otherwise,
  • Step past the first element, and count the
    remaining elements in the list
  • Add one to the result
  • To test if a value occurs in a list
  • If the list is empty, return false otherwise,
  • If the first thing in the list is the given
    value, return true otherwise
  • Step past the first element, and test whether the
    value occurs in the remainder of the list

9
Example backtracking algorithm
  • To color a map with no more than four colors
  • color(Country n)
  • If all countries have been colored (n gt number of
    countries) return success otherwise,
  • For each color c of four colors,
  • If country n is not adjacent to a country that
    has been colored c
  • Color country n with color c
  • recursively color country n1
  • If successful, return success
  • If loop exits, return failure

10
Example greedy algorithm
  • Suppose you want to count out a certain amount of
    money, using the fewest possible bills and coins
  • A greedy algorithm would do this would beAt
    each step, take the largest possible bill or coin
    that does not overshoot
  • Example To make 6.39, you can choose
  • a 5 bill
  • a 1 bill, to make 6
  • a 25 coin, to make 6.25
  • A 10 coin, to make 6.35
  • four 1 coins, to make 6.39
  • For US money, the greedy algorithm always gives
    the optimum solution

11
Time and space
  • To analyze an algorithm means
  • developing a formula for predicting how fast an
    algorithm is, based on the size of the input
    (time complexity), and/or
  • developing a formula for predicting how much
    memory an algorithm requires, based on the size
    of the input (space complexity)
  • Usually time is our biggest concern
  • Most algorithms require a fixed amount of space

12
y x2 3x 5, for x1..20
13
The End
Write a Comment
User Comments (0)
About PowerShow.com