Pointers Contd. - PowerPoint PPT Presentation

Loading...

PPT – Pointers Contd. PowerPoint presentation | free to download - id: 4aa8d5-N2IyO



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Pointers Contd.

Description:

Pointers Contd. Causing a Memory Leak Leaving a Dangling Pointer Dynamic Array Example Pointer Arithmetic Int *p; p = new int[10] p[i]; 0 – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 18
Provided by: JamesY156
Learn more at: http://www.cs.wmich.edu
Category:
Tags: contd | pointers

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Pointers Contd.


1
Pointers Contd.
2
Causing a Memory Leak
int ptr new int ptr 8 int ptr2 new
int ptr2 -5
ptr ptr2
3
Leaving a Dangling Pointer
int ptr new int ptr 8 int ptr2 new
int ptr2 -5 ptr ptr2
delete ptr2 ptr2 NULL
4
Dynamic Array Example
Sort an array of float numbers from standard
input. The first element is the size of the
array. For example 5 3.4 2.6 5.7 100.4
43.5
sortFromInput( ) float array int size,
idx cin gtgt size array new floatsize
for (idx0 idxltsize idx) cin gtgt
arrayidx Sort(array, size)
OutputSortedArray(array, size) delete
array
5
Pointer Arithmetic
  • Int p
  • p new int10
  • pi 0 lt i lt 9
  • What are p, p etc..

6
Algorithm Efficiency and Sorting Algorithms
7
Measuring the Efficiency of Algorithms
  • Analysis of algorithms is the area of computer
    science that provides tools for contrasting the
    efficiency of different methods of solution.
  • Concerns with significant differences

8
How To Do Comparison?
  • Implement the algorithms in C and run the
    programs
  • How are the algorithms coded?
  • What computer should you use?
  • What data should the programs use?
  • Analyze algorithms independent of implementations

9
The Execution Time of Algorithms
  • Count the number of basic operations of an
    algorithm
  • Read (get), write (put), compare, assignment,
    jump, arithmetic operations (increment,
    decrement, add, subtract, multiply, divide),
    shift, open, close, logical operations
    (not/complement, AND, OR, XOR),

10
The Execution Time of Algorithms
  • Counting an algorithms operations

int sum item0 int j 1 while
(j lt n) sum itemj j
lt- 1 assignment
lt- 1 assignment
lt- n comparisons
lt- n-1 plus/assignments
lt- n-1 plus/assignments
Total 3n operations
11
Algorithm Growth Rates
  • Measure an algorithms time requirement as a
    function of the problem size
  • Number of elements in an array

Algorithm A requires n2/5 time units Algorithm B
requires 5n time units
  • Algorithm efficiency is a concern for large
    problems only

12
Common Growth-Rate Functions - I
13
Common Growth-Rate Functions - II
14
Big O Notation
Algorithm A is order f(n)-denoted O(f(n))-if
constants k and n0 exist such that A requires lt
kf(n) time units to solve a problem of size ngtn0
  • n2/5
  • O(n2) k1/5, n00
  • 5n
  • O(n) k5, n00

15
More Examples
  • How about n2-3n10?
  • O(n2) if there exist k and n0 such that
  • kn2 n2-3n10 for all n n0
  • 3n2 n2-3n10 for all n 2 so k3, n02

16
Properties of big-Oh
  • Ignore low-order terms
  • O(n34n23n)O(n3)
  • Ignore multiplicative constant
  • O(5n3)O(n3)
  • Combine growth-rate functions
  • O(f(n)) O(g(n)) O(f(n)g(n))

17
Worst-case vs. Average-case Analyses
  • An algorithm can require different times to solve
    different problems of the same size.
  • Worst-case analysis (find the maximum number of
    operations an algorithm can execute in all
    situations)
  • is easier to calculate and is more common
  • Average-case (enumerate all possible situations,
    find the time of each of the m possible cases,
    total and dive by m)
  • is harder to compute but yields a more realistic
    expected behavior
About PowerShow.com