0% found this document useful (0 votes)
21 views

2.0 Introduction To Data Structures and Algorithms

Uploaded by

edward arthur
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

2.0 Introduction To Data Structures and Algorithms

Uploaded by

edward arthur
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Chapter 01 - A Practical Introduction to

 Data Structures and Algorithm Analysis

data structures & algorithms 1


The Need for Data Structures
 Data structures organize data
 more efficient programs.
 More powerful computers
 more complex applications.
 More complex applications demand
more calculations.
 Complex computing tasks are unlike our
everyday experience.

data structures & algorithms 2


What is a data structure?
 In a general sense, any data
representation is a data structure.
Example: An integer
 More typically, a data structure is meant
to be an organization for a collection of
data items.

data structures & algorithms 3


Organizing Data

 Any organization for a collection of records


can be searched, processed in any order,
or modified.
 The choice of data structure and algorithm
can make the difference between a
program running in a few seconds or many
days.
data structures & algorithms 4
Efficiency
 A solution is said to be efficient if it solves
the problem within its resource constraints.
 Space
 Time
 The cost of a solution is the amount of
resources that the solution consumes.

data structures & algorithms 5


Costs and Benefits
 A data structure requires a certain
amount of:
 space for each data item it stores

 time to perform a single basic operation

 programming effort.

data structures & algorithms 6


Example: Banking Application
 Operations are (typically):
 Open accounts (far less often than access)

 Close accounts (far less often than access)

 Access account to Add money

 Access account to Withdraw money


data structures & algorithms 7
Example: Banking Application
 Teller and ATM transactions are expected to
take little time.

 Opening or closing an account can take


much longer (perhaps up to an hour).

data structures & algorithms 8


Example: Banking Application
 When considering the choice of data
structure to use in the database system that
manages the accounts, we look for a data
structure that:
 Is inefficient for deletion

 Highly efficient for search

 Moderately efficient for insertion


data structures & algorithms 9
Example: Banking Application
 One data structure that meets these requirements is
the hash table
 Records are accessible by account number (called an
exact-match query)
 Hash tables allow for extremely fast exact-match
search.
 Hash tables also support efficient insertion of new
records.
 Deletions can also be supported efficiently (but too
many deletions lead to some degradation in
performance – requiring the hash table to be
reorganized).

data structures & algorithms 10


Example: City Database
 Database system for cities and towns.
 Users find information about a
particular place by name (exact-match
query)
 Users also find all places that match a
particular value (or range of values),
such as location or population size
(called a range query).

data structures & algorithms 11


Example: City Database
 The database must answer queries quickly
enough to satisfy the patience of a typical user.
 For an exact-match query, a few seconds is
satisfactory
 For a range queries, the entire operation may
be allowed to take longer, perhaps on the order
of a minute.

data structures & algorithms 12


Selecting a Data Structure
Select a data structure as follows:
1. Analyze the problem to determine the resource
constraints a solution must meet.
2. Determine the basic operations that must be
supported. Quantify the resource constraints
for each operation.
3. Select the data structure that best meets these
requirements.

data structures & algorithms 13


Some Questions to Ask
 Are all data inserted into the data structure
at the beginning, or are insertions
intersparsed with other operations?
 Can data be deleted?
 Are all data processed in some well-
defined order, or is random access
allowed?

data structures & algorithms 14


Data Structure Philosophy

 Each data structure has costs and benefits.


 Rarely is one data structure better than
another in all situations.
 A data structure requires:
 space for each data item it stores,
 time to perform each basic operation,
 programming effort.

data structures & algorithms 15


Philosophy cont…

 Each problem has constraints on available


space and time.
 Only after a careful analysis of problem
characteristics can we know the best data
structure for the task.
 Bank example:
 Start account: a few minutes
 Transactions: a few seconds
 Close account: overnight

data structures & algorithms 16


Abstract Data Types

 Abstract Data Type (ADT): a definition for


a data type solely in terms of a set of
values and a set of operations on that data
type.
 Each ADT operation is defined by its inputs
and outputs.

 Encapsulation: Hide implementation


details.
data structures & algorithms 17
ADT
The concept of abstraction means:
1. We know what a data type can do.
2. How it is done is hidden.
Abstract data type:
1. Definition of data.
2. Definition of operations.
3. Encapsulation of data and operation.
 
data structures & algorithms 18
Data Structure

 A data structure is the physical implementation of an ADT.


 Each operation associated with the ADT is implemented by one
or more subroutines in the implementation.
 In a OO language such as C++, an ADT and its
implementation together make up a class.
 Data structure usually refers to an organization for data in
main memory.

 File structure: an organization for data on peripheral


storage, such as a disk drive.

data structures & algorithms 19


Labeling collections of objects

 Humans deal with complexity by assigning a label


to an assembly of objects.
 An ADT manages complexity through abstraction.
 Hierarchies of labels

 Ex1: transistors  gates  CPU.

 In a program, to implement an ADT, then think only


about the ADT, not its implementation.
data structures & algorithms 20
Logical vs. Physical Form

 Data items have both a logical and a physical form.

 Logical form: definition of the data item within an


ADT.
 Ex: Integers in mathematical sense: +ve, -ve

 Physical form: implementation of the data item within


a data structure.
 Ex: 16/32 bit integers, overflow.

data structures & algorithms 21


Problems, Algorithms and
Programs
 Programmers deal with:
 problems,
 algorithms and
 computer programs.

These are distinct concepts…

data structures & algorithms 23


Problems

 Problem: a task to be performed.


 Best thought of as inputs and matching
outputs.
 Problem definition should include constraints
on the resources that may be consumed by
any acceptable solution.

data structures & algorithms 24


Problems (cont)

 Problems  mathematical functions


 A function is a matching between inputs (the domain)
and outputs (the range).
 An input to a function may be single number, or a
collection of information.
 The values making up an input are called the
parameters of the function.
 A particular input must always result in the same
output every time the function is computed.

data structures & algorithms 25


Algorithms and Programs
 Algorithm: a method or a process followed to solve a
problem.
 A recipe: The algorithm gives us a “recipe” for solving the
problem by performing a series of steps, where each step is
completely understood and doable.
 An algorithm takes the input to a problem (function)
and transforms it to the output.
 A mapping of input to output.
 A problem can be solved by many algorithms.

data structures & algorithms 26


A problem can have many
algorithms
For example, the problem of sorting can be
solved by the following algorithms:
 Insertion sort

 Bubble sort

 Selection sort

 Shellsort

 Mergesort

 Others

data structures & algorithms 27


Algorithm Properties

Properties of algorithms:
 It must be correct.
 It must be composed of a series of concrete
steps.
 There can be no ambiguity as to which step
will be performed next.
 It must be composed of a finite number of
steps.
 It must terminate.
.
data structures & algorithms 28
Programs
 A computer program is a concrete
representation of an algorithm in some
programming language.
 Naturally, there are many programs that
are instances of the same algorithms, since
any modern programming language can be
used to implement any algorithm.

data structures & algorithms 29


To Summarize:
 A problem is a function or a mapping of
inputs to outputs.
 An algorithm is a recipe for solving a
problem whose steps are concrete and
non-ambiguous.
 A program is an instantiation of an
algorithm in a computer programming
language.

data structures & algorithms 30


Example
 Problem: find y = x to the power of 2
 Algorithm1: Multiply X by X
 Algorithm2: Add X to itself X times
 Program1: for (int i = 0; i<x; i++)
y +=x;

data structures & algorithms 31


In class exercises
 Write an algorithm to compute the sum of the first n
counting numbers

 calcSum (integer n)
Sum 0
for i 1 to n
sum sum + i
return sum

data structures & algorithms 32

You might also like