Introduction and a Review of Basic Concepts - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction and a Review of Basic Concepts

Description:

... print(var); or System.out.println(var);) Instantiating ... A time function, f, of the dataset size is often used to measure effectiveness ... Abstract Data Type ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 9
Provided by: Harv55
Learn more at: https://cs.sou.edu
Category:

less

Transcript and Presenter's Notes

Title: Introduction and a Review of Basic Concepts


1
Introduction and a Review of Basic Concepts
  • Syllabus and goals of the course
  • Object oriented programming contrasting to C
    programming
  • Objects, classes, methods
  • Instantiation, references
  • Polymorphism, inheritance
  • Constructor, destructor, garbage collection
  • Encapsulation
  • Public, private, protected
  • Data structures already introduced Stacks,
    queues, linked lists
  • Recursion and induction

Understanding data structures and algorithms is a
major difference separating computer scientists
from one who reads a manual and begins to program.
2
C versus Java
  • The dot in Java is equivalent to the -gt C there
    is no Java equivalent to the C dot operator.
    Generally, use -gt in most cases and declare
    variables using the (indicating pointer)
  • There is no Boolean in C. Many programmers
    declare TRUE and FALSE using define
  • C has no garbage collection. To avoid memory
    leaks, make sure to free whatever you malloc.
  • Use NULL in C, instead of the null in Java
  • Use scanf for input, but make sure to clear the
    input buffer after an error (scanf("s"))
  • C has no methods (it has functions), so dot
    notation makes no sense. Replace object.method
    by function(data
  • There is no length property in arrays and
    strings. Array sizes must be stored in a separate
    variable.
  • Be careful with pointers and memory management. C
    doesnt catch all errors at compile time.

3
Strings in C
  • There is no String type, use an array of
    characters (char data).
  • C has no operator for string concatenation.
    Use strcat, but make sure you have an allocated
    area in memory to hold the larger string.
  • To truncate a string, store '\0' in the
    appropriate index.
  • To format output, use printf.
  • For both puts and printf, make sure to follow the
    output with fflush(stdout). Otherwise, output
    only occurs when the accumulated print buffer
    gets large enough.
  • There are many string functions in C, all
    starting with str. There is also memory
    manipulation functions, all starting with mem.
  • Make sure your strings end with a null. Java has
    the length in the front of a string C has a null
    at the end.

4
Analysis of Algorithms
  • Definition of Algorithm. Why study data types
    and algorithm?
  • Step-by-step solution to a problem
  • Often the problem can be specified in terms of
    the size of the data set (n).
  • Algorithm performance (The technical term is
    complexity)
  • A good algorithm implemented by a bad programmer
    will beat a bad algorithm implemented by a good
    programmer
  • A time function, f, of the dataset size is often
    used to measure effectiveness as the data set
    size grows. For example, f(n) lt cn, where c is
    a constant gt 0. Other examples of the growth
    rate are cn2, clg n, c, lg2 n, etc.
  • Big Oh notation.
  • How to determine if an algorithm is a good one?
  • How fast does it work on a given data set?
  • What is the Relationship between time and data
    set size?
  • How does it perform on different data set sizes?
  • Growth is more important than a given runs
    performance

5
Big Oh Notation
Measurement of algorithm efficiency in terms of
memory or time as the problem size increases
  • Formal Definition f(n) O(g(n)) means there are
    positive constants c and z, such that 0 f(n)
    cg(n) for all n z. The values of c and z must
    be fixed for the function f and must not depend
    on n.
  • Explanation of terms
  • g(n) is a well known function to which we want to
    compare our algorithm.
  • f(n) is how our algorithm performs on different
    size data sets
  • z is an integer. For all data set sizes smaller
    than z, we dont consider the algorithms
    efficiency
  • c is a positive constant . By multiplying g by
    this constant, all functions with equal or
    smaller slopes will satisfy the Big Oh definition
    requirements.

Review of logarithms. Conversion of logarithms
Logn x logq x / logq n
6
Pictorial View of Big Oh
Time or memory
z
Data set size
7
Allocate Unique Random Numbers
  • Declare the free listint freeListMAX
  • Initialize the free listfor (i0 iltMAX i)
    freeListi ifreeCount MAX
  • Allocate an entry from the free list
  • Find a random index into the free list index
    (int)(rand() freeCount)
  • Get the value from the free list (key
    freeListindex)
  • Replace the index with the last value in the
    freeListfreeListindex freeList--freeCount
  • Release an entry back to the free list
  • Put the value to the end of the free
    listfreeListfreeCount key

8
Abstract Data TypeA general-purpose data
structure encapsulated from the user through a
well-defined set of operation
  • Design
  • Design the operations that are to be used
  • Design the data structure to be used
  • Examples (What operations? What data-structure?)
  • Javas primitive floating point number
  • Stacks, queues, and linked lists.
  • To be covered Trees, priority queues, hash
    tables, graphs.
  • Arrays (Ordered and Unordered)
  • Array operations and complexities (insert,
    delete, find, expand,sort,access,traverse)
  • Advantages and disadvantages
Write a Comment
User Comments (0)
About PowerShow.com