SlideShare a Scribd company logo
1 of 15
Algorithms and
Data Structures
Of the many subfields within computerscience, algorithmsand data
structures may be the most fundamental—it seems to characterize computer
science like perhaps no other. What is involved in the study of algorithms and
data structures?
Importance
Computer Science encompasses theoretical and practical approaches to
computation. It's been said that the four essential subdisciplines are:
 Theory of Computation
 Algorithms and Data Structures
 Programming Methodology and Languages
 Computer Elements and Architecture
The ACM has identified eighteen knowledge areas of Computer Science
as:
Algorithms and
Complexity
AL Algorithmic Analysis; Algorithmic Strategies;
Data Structures and Algorithms; Automata;
Computability;Computational Complexity.
Architecture and
Organization
AR Digital Logic and Digital Systems; Machine-
level Data Representation; Assembly-Level
Machine Organization; Memory System
Organization and Architecture; Interfacing and
Communication; Functional Organization;
Multiprocessing and Alternative Architectures;
Performance Enhancements.
Computational
Science
CN Modeling and Simulation; Processing;
Interactive Visualization; Data, Information and
Knowledge; Numeric Analysis; Symbolic
Computation; Mathematical Modeling; High-
Performance Computing.
Discrete
Structures
DS Logic; Sets, Relations, and Functions; Proof
Techniques; Basics of Counting; Graphs and
Trees; Discrete Probability.
Graphics and
Visualization
GV Media Applications; Digitization; Color Models;
Rendering; Modeling; Animation; Visualization.
Human-
Computer
HCI Interactive Systems; Testing; Collaboration and
Communication; Statistical Methods; Human
Interaction Factors; Mixed, Augmented, and Virtual Reality.
Information
Assurance and
Security
IAS Defensive Programming; Threats and Attacks;
Network Security; Cryptography;Web Security;
Platform Security; Policy and Governance;
Digital Forensics; Secure Software Engineering.
Information
Management
IM Database Systems; Data Modeling; Indexing;
Key-Value, Document, Relational, and Graph
Databases; Query Languages; Transaction
Processing; Distributed Databases; Physical
Database Design; Data Mining; Information
Storage and Retrieval; Multimedia Systems.
Intelligent
Systems
IS Knowledge Representation and Reasoning;
Search; Machine Learning; Reasoning Under
Uncertainty; Agents; Natural Langauge
Processing; Robotics; Speech Recognition and
Synthesis; Perception and Computer Vision.
Networking and
Communication
NC Networked Applications; Reliable Data
Delivery; Routing and Forwarding; Local and
Wide Area Networks; Reource Allocation;
Mobility; Social Networking.
Operating
Systems
OS Operating System Organization; Concurrency;
Scheduling and Dispatch; Memory
Management; Security and Protection; Virtual
Machines; Device Management; File Systems;
Realtime and Embedded Systems; Fault
Tolerance; System Performance and Evaluation.
Platform-Based
Development
PBD Web Platforms; Mobile Platforms; Industrial
Platforms; game Platforms.
Parallel and
Distributed
Computing
PD Parallel Decomposition; Communication and
Coordination; Parallel Algorithms, Analysis, and
Programming; Parallel Architecture; Parallel
Performance; Distributed Systems; Cloud
Computing; Formal Models and Semantics.
Programming
Languages
PL Object Oriented Programming; Functional
Programming; Event-Driven and Reactive
Programming; Type Systems; Program
Representation; Language Translation and
Execution; Syntax Analysis; Semantic Analysis;
Code Generation; Runtime Systems; Static
Analysis; Concurrency and Parallelism; Type
Systems; Formal Semantics; Language
Pragmatics; Logic Programming.
Software
Development
Fundamentals
SDF Algorithms and Design; Fundamental
Programming Concepts; Fundamental Data
Structures; Development Methods.
Software
Engineering
SE Software Processes; Project Management;
Tools and Environments; Requirements
Engineering; Software Design; Software
Construction; Software Verification and
Validation; Software Evolution; Software
Reliability;Formal Methods.
Systems
Fundamentals
SF Computational Paradigms; Cross-Layer
Communications; State and State Machines;
Parallelism; Evaluation; Resource Allocation and
Scheduling; Proximity; Virtualization and
Isolation; Reliability through Redundancy;
Quantitative Evaluation.
Social Issues and
Professional
Practice
SP Social Context; Analytic Tools; Professional
Ethics; Intellectual Property; Privacy and Civil
Liberties; Professional Communication;
Sustainability; History; Economics of
Computing; Security Policies, Law, and Crime.
We study data structures and algorithms because:
 Computing systems are concerned with the storage and retrieval
of information.
 For systems to be economical the data must be organized (into
data structures) in such a way as to support efficient manipulation
(by algorithms).
 Choosing the wrong algorithms and data structures makes a
program slow at best and unmaintainable and insecure at worst.
Topics
While it's possible to study algorithms and data structures exclusively at
a theoretical level, we often study them together with introductory
software engineering concepts; the major topics, grouping them
roughly as follows:
 Data: data types, abstract data types, data structures (arrays and
links), classes, APIs, collections, OO.
 Algorithms: What is an algorithm?, algorithmic patterns and
paradigms (recursion, backtracking, search, etc.), complexity analysis.
 Software development: abstraction, efficiency, robustness,
classification, inheritance and composition, polymorphism, software
life cycle, methodology, modeling languages, design patterns, and
testing.
Data Types
During the design of a system, before the algorithms are written and
before the data structures are sketched out, we must first identify the
kinds of objects we need and how they should behave.
A type is a collection of values, like
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
A data type is a type together with operations. An abstract data type
(ADT) is a data type in which the internal structure and internal
workings of the objects of the type are unknown to users of the type.
Users can only see the effects of the operations.
Types and operations can be given in pictures...
... or with signatures
CLUBS : Suit
HEARTS : Suit
DIAMONDS : Suit
SPADES : Suit
ACE : Rank
TWO : Rank
THREE : Rank
FOUR : Rank
FIVE : Rank
SIX : Rank
SEVEN : Rank
EIGHT : Rank
NINE : Rank
TEN : Rank
JACK : Rank
QUEEN : Rank
KING : Rank
makeCard : Suit × Rank → Card
getSuit : Card → Suit
getRank : Card → Rank
newDeck : Deck
positionOf : Deck × Card → int
cardAt : Deck × int → Card
topCard : Deck → Card
shuffle : Deck → Deck
split : Deck → Deck
Exercise: Draw a picture, and enumerate operations, for the type of
integer lists. An integer list is a sequence of zero or more integers with
operations such as obtaining the length, adding an item to a given
position, removing the nth item, reversing, finding the position of a
given item, etc.
Collections
A collection is a group of elements treated a single object. Most ADTs
seem to be collection types. Collection types can be
 Homogeneous or heterogeneous
 Unordered or ordered
 Linear, Hierarchical, Networked, or Non-Positional
The latter classification looks like this:
Classification Topology Examples
SET
(NON-
POSITIONAL)
Unrelated items, such as people
in a class or a hand of cards.
SEQUENCE
(LINEAR)
One-to-one relationship, as in a
printer queue, ring LAN, or a line
at the deli.
TREE
(HIERARCHICAL)
One-to-many relationship, as in
a family tree, organization chart,
expression tree, or folders and
files in a file system.
GRAPH
(NETWORK)
Many-to-many relationship, as
in a road map, schedule, belief
network, or communication net.
Operations common to most collections include
 Creation and destruction
 Adding, removing, replacing, and searching for elements
 Getting the size, or figuring out if it is empty or full
 Enumeration (traversal)
 Equality testing
 Cloning
 Serializing
Data Structures
A data structure is an arrangement of data for the purpose of being
able to store and retrieve information. Usually a data structure is some
physical representation of an ADT.
Example: A list (data type) can be represented by an array (data
structure) or by attaching a link from each element to its successor
(another kind of data structure).
Building Blocks
Data structures are built with
 Records (a.k.a. structs, classes, hashes), which group entities into a
single unit with named fields
 Arrays, which store fixed size entities into indexed, contiguous
slots in memory
 Links (a.k.a. references or pointers)
Choosing the Right Data Structure
The data structure chosen for a data type must meet the resource
constraints of the problem. Figure out the constraints before you start
coding!
Example: In an accounting system,
 Creation and deletion of a new account can be slow
 Lookup and update of the balance of a given account must be
extremely fast.
These are the extremely important questions you must ask to determine
acceptable tradeoffs:
 Can the data structure be completely filled at the beginning, or
will there be insertions intermingled with deletions, lookups, updates,
and other operations?
 Can items be deleted from the structure?
 Will the items always be processed in a well-defined order, or will
random-access have to be supported?
The Classics
History is important. Over time, many data structures have become
well-known (for variaous) reasons. Some of these are:
 The Skip List
 The Cartesian Tree
 The Judy Array
 ...
Wait, I can't make up a great list, but Wikipedia can. Check out
Wikpedia's List of Data Structures.
Algorithms
We design algorithms to carry out the desired behavior of a software
system. Good programmers tend to use stepwise refinement when
developing algorithms, and understand the tradeoffs between different
algorithms for the same problem.
Classifying Algorithms
There are several classification schemes for algorithms:
 By problem domain: numeric, text processing (matching,
compression, sequencing), cryptology, fair division, sorting,
searching, computational geometry, networks (routing, connectivity,
flow, span), computer vision, machine learning.
 By design strategy: divide and conquer, greedy, algebraic
transformation, dynamic programming, linear programming, brute
force (exhaustive search), backtracking,branch and bound, heuristic
search, genetic algorithms, simulated annealing, particle swarm, Las
Vegas, Monte Carlo, quantum algorithms.
 By complexity: constant, logarithmic, linear, linearithmic,
quadratic, cubic, polynomial, exponential.
 Around the central data structures and their behavior: whether
(1) organizational: set, linear, hierachical, or network; or (2)
implementational: hashtables, skip lists, red-black trees, a-b trees,
cartesian trees, neural networks, Bayesian networks, swarms.
 By one of many implementation dimensions: sequential vs.
parallel, recursive vs. iterative, deterministic vs. non-deterministic,
exact vs. approximate, ....
Kinds of Problems
This classification has proved useful:
Problem
Type
Description
Decision Given [Math Processing Error] and [Math Processing
Error], is it true that [Math Processing Error]?
Functional Given [Math Processing Error] and [Math Processing
Error], find [Math Processing Error]
Constraint Given [Math Processing Error] and [Math Processing
Error], find an [Math Processing Error] such that [Math
Processing Error]
Optimization Given [Math Processing Error], find the [Math Processing
Error] such that [Math Processing Error] is less than or
equal to [Math Processing Error] for all [Math Processing
Error].
Choosing the Right Algorithm
Choosing the right algorithm is both
 an art, because cleverness, insight, ingenuity, and dumb luck are
often required to find efficient algorithms for certain problems
 a science, because principles of algorithm analysis and widely
applicable algorithmic patterns have been developed over time for
you to use.
The Classics
History is important. Over time, many algorithms have become well-
known (for variaous) reasons. Some of these are:
 Euclid's GCD
 The Fast Fourier Transform
 Miller-Rabin Primality Test
 ...
Wait, I can't make up a great list, but Wikipedia can. Check out
Wikpedia's List of Algorithms.

More Related Content

What's hot

Use of matrix in daily life
Use of matrix in daily lifeUse of matrix in daily life
Use of matrix in daily lifesadia Afrose
 
Application of Matrix
Application of MatrixApplication of Matrix
Application of MatrixRahman Hillol
 
Applications of matrices in Real\Daily life
Applications of matrices in Real\Daily lifeApplications of matrices in Real\Daily life
Applications of matrices in Real\Daily lifeSami Ullah
 
Presentation on application of matrix
Presentation on application of matrixPresentation on application of matrix
Presentation on application of matrixPrerana Bhattarai
 
Matrix and it's Application
Matrix and it's ApplicationMatrix and it's Application
Matrix and it's ApplicationMahmudle Hassan
 
Application of matrices in real life and matrix
Application of matrices in real life and matrixApplication of matrices in real life and matrix
Application of matrices in real life and matrixDarshDobariya
 
Application of Matrices in real life
Application of Matrices in real lifeApplication of Matrices in real life
Application of Matrices in real lifeShayshab Azad
 
Data science dec ppt
Data science dec pptData science dec ppt
Data science dec pptsterlingit
 
Introduction to data science
Introduction to data scienceIntroduction to data science
Introduction to data scienceHiba Akroush
 
Applications of Matrices in Engineering
Applications of Matrices in EngineeringApplications of Matrices in Engineering
Applications of Matrices in EngineeringAliHasan358
 
Matematika terapan week 6
Matematika terapan week 6 Matematika terapan week 6
Matematika terapan week 6 Hardini_HD
 
Futuristic knowledge management ppt bec bagalkot mba
Futuristic knowledge management ppt bec bagalkot mbaFuturistic knowledge management ppt bec bagalkot mba
Futuristic knowledge management ppt bec bagalkot mbaBabasab Patil
 
Regression with Microsoft Azure & Ms Excel
Regression with Microsoft Azure & Ms ExcelRegression with Microsoft Azure & Ms Excel
Regression with Microsoft Azure & Ms ExcelDr. Abdul Ahad Abro
 
Application of integration in real life.
Application of integration in real life.Application of integration in real life.
Application of integration in real life.Jholok Biswash
 
Differential Equetion presentation
Differential Equetion presentationDifferential Equetion presentation
Differential Equetion presentationJholok Biswash
 

What's hot (19)

Matrix in software engineering
Matrix in software engineeringMatrix in software engineering
Matrix in software engineering
 
Use of matrix in daily life
Use of matrix in daily lifeUse of matrix in daily life
Use of matrix in daily life
 
Application of Matrix
Application of MatrixApplication of Matrix
Application of Matrix
 
Applications of matrices in Real\Daily life
Applications of matrices in Real\Daily lifeApplications of matrices in Real\Daily life
Applications of matrices in Real\Daily life
 
Mscs discussion
Mscs discussionMscs discussion
Mscs discussion
 
Presentation on application of matrix
Presentation on application of matrixPresentation on application of matrix
Presentation on application of matrix
 
Matrix and it's Application
Matrix and it's ApplicationMatrix and it's Application
Matrix and it's Application
 
Application of matrices in real life and matrix
Application of matrices in real life and matrixApplication of matrices in real life and matrix
Application of matrices in real life and matrix
 
Application of Matrices in real life
Application of Matrices in real lifeApplication of Matrices in real life
Application of Matrices in real life
 
Data science dec ppt
Data science dec pptData science dec ppt
Data science dec ppt
 
Introduction to data science
Introduction to data scienceIntroduction to data science
Introduction to data science
 
Applications of Matrices in Engineering
Applications of Matrices in EngineeringApplications of Matrices in Engineering
Applications of Matrices in Engineering
 
Matematika terapan week 6
Matematika terapan week 6 Matematika terapan week 6
Matematika terapan week 6
 
Dsal#01
Dsal#01Dsal#01
Dsal#01
 
Futuristic knowledge management ppt bec bagalkot mba
Futuristic knowledge management ppt bec bagalkot mbaFuturistic knowledge management ppt bec bagalkot mba
Futuristic knowledge management ppt bec bagalkot mba
 
Data science
Data science Data science
Data science
 
Regression with Microsoft Azure & Ms Excel
Regression with Microsoft Azure & Ms ExcelRegression with Microsoft Azure & Ms Excel
Regression with Microsoft Azure & Ms Excel
 
Application of integration in real life.
Application of integration in real life.Application of integration in real life.
Application of integration in real life.
 
Differential Equetion presentation
Differential Equetion presentationDifferential Equetion presentation
Differential Equetion presentation
 

Viewers also liked

Comparing the Multimodal Interaction Technique Design of MINT with NiMMiT
Comparing the Multimodal Interaction Technique Design of MINT with NiMMiTComparing the Multimodal Interaction Technique Design of MINT with NiMMiT
Comparing the Multimodal Interaction Technique Design of MINT with NiMMiTSebastian Feuerstack
 
Lca seminar modified
Lca seminar modifiedLca seminar modified
Lca seminar modifiedInbok Lee
 
Integrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML DatabaseIntegrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML Databaselucenerevolution
 
Gesture-aware remote controls: guidelines and interaction techniques
Gesture-aware remote controls: guidelines and interaction techniquesGesture-aware remote controls: guidelines and interaction techniques
Gesture-aware remote controls: guidelines and interaction techniquesDong-Bach Vo
 
[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)
[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)
[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)Yusuke Iwasawa
 
Singletons in PHP - Why they are bad and how you can eliminate them from your...
Singletons in PHP - Why they are bad and how you can eliminate them from your...Singletons in PHP - Why they are bad and how you can eliminate them from your...
Singletons in PHP - Why they are bad and how you can eliminate them from your...go_oh
 
Masterizing php data structure 102
Masterizing php data structure 102Masterizing php data structure 102
Masterizing php data structure 102Patrick Allaert
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with PhingMichiel Rook
 
Semi supervised learning
Semi supervised learningSemi supervised learning
Semi supervised learningAhmed Taha
 
Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...
Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...
Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...Spark Summit
 
PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)Nikita Popov
 
Biomolecular interaction analysis (BIA) techniques
Biomolecular interaction analysis (BIA) techniquesBiomolecular interaction analysis (BIA) techniques
Biomolecular interaction analysis (BIA) techniquesN Poorin
 
HTTP cookie hijacking in the wild: security and privacy implications
HTTP cookie hijacking in the wild: security and privacy implicationsHTTP cookie hijacking in the wild: security and privacy implications
HTTP cookie hijacking in the wild: security and privacy implicationsPriyanka Aash
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~Yuma Inoue
 

Viewers also liked (20)

Data structures project
Data structures projectData structures project
Data structures project
 
Encoding survey
Encoding surveyEncoding survey
Encoding survey
 
Comparing the Multimodal Interaction Technique Design of MINT with NiMMiT
Comparing the Multimodal Interaction Technique Design of MINT with NiMMiTComparing the Multimodal Interaction Technique Design of MINT with NiMMiT
Comparing the Multimodal Interaction Technique Design of MINT with NiMMiT
 
Lca seminar modified
Lca seminar modifiedLca seminar modified
Lca seminar modified
 
Integrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML DatabaseIntegrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML Database
 
Xml databases
Xml databasesXml databases
Xml databases
 
Gesture-aware remote controls: guidelines and interaction techniques
Gesture-aware remote controls: guidelines and interaction techniquesGesture-aware remote controls: guidelines and interaction techniques
Gesture-aware remote controls: guidelines and interaction techniques
 
XML In My Database!
XML In My Database!XML In My Database!
XML In My Database!
 
[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)
[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)
[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)
 
Singletons in PHP - Why they are bad and how you can eliminate them from your...
Singletons in PHP - Why they are bad and how you can eliminate them from your...Singletons in PHP - Why they are bad and how you can eliminate them from your...
Singletons in PHP - Why they are bad and how you can eliminate them from your...
 
XML Databases
XML DatabasesXML Databases
XML Databases
 
Masterizing php data structure 102
Masterizing php data structure 102Masterizing php data structure 102
Masterizing php data structure 102
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with PhingBuilding and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
 
Semi supervised learning
Semi supervised learningSemi supervised learning
Semi supervised learning
 
Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...
Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...
Extending Word2Vec for Performance and Semi-Supervised Learning-(Michael Mala...
 
PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)
 
Biomolecular interaction analysis (BIA) techniques
Biomolecular interaction analysis (BIA) techniquesBiomolecular interaction analysis (BIA) techniques
Biomolecular interaction analysis (BIA) techniques
 
HTTP cookie hijacking in the wild: security and privacy implications
HTTP cookie hijacking in the wild: security and privacy implicationsHTTP cookie hijacking in the wild: security and privacy implications
HTTP cookie hijacking in the wild: security and privacy implications
 
Complexity of Algorithm
Complexity of AlgorithmComplexity of Algorithm
Complexity of Algorithm
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
 

Similar to Algorithms and Data Structures~hmftj

Data Structure and its Fundamentals
Data Structure and its FundamentalsData Structure and its Fundamentals
Data Structure and its FundamentalsHitesh Mohapatra
 
Introduction to data structure
Introduction to data structureIntroduction to data structure
Introduction to data structureadeel hamid
 
Lecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.ppt
Lecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.pptLecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.ppt
Lecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.pptiamsallauddin
 
Data Structure Introduction chapter 1
Data Structure Introduction chapter 1Data Structure Introduction chapter 1
Data Structure Introduction chapter 1vasantiDutta1
 
Chapter 1 Introduction to Data Structures and Algorithms.pdf
Chapter 1 Introduction to Data Structures and Algorithms.pdfChapter 1 Introduction to Data Structures and Algorithms.pdf
Chapter 1 Introduction to Data Structures and Algorithms.pdfAxmedcarb
 
Data structures - Introduction
Data structures - IntroductionData structures - Introduction
Data structures - IntroductionDeepaThirumurugan
 
DATA STRUCTURE AND ALGORITHMS
DATA STRUCTURE AND ALGORITHMS DATA STRUCTURE AND ALGORITHMS
DATA STRUCTURE AND ALGORITHMS Adams Sidibe
 
Introduction-to-Coding-Challenges data structure.pptx
Introduction-to-Coding-Challenges data structure.pptxIntroduction-to-Coding-Challenges data structure.pptx
Introduction-to-Coding-Challenges data structure.pptxAttitude Tally Academy
 
Introduction-to-Coding-Challenges in data structure.pptx
Introduction-to-Coding-Challenges in data structure.pptxIntroduction-to-Coding-Challenges in data structure.pptx
Introduction-to-Coding-Challenges in data structure.pptxAttitude Tally Academy
 
data structures and its importance
 data structures and its importance  data structures and its importance
data structures and its importance Anaya Zafar
 
Data Structure the Basic Structure for Programming
Data Structure the Basic Structure for ProgrammingData Structure the Basic Structure for Programming
Data Structure the Basic Structure for Programmingpaperpublications3
 
EE-232-LEC-01 Data_structures.pptx
EE-232-LEC-01 Data_structures.pptxEE-232-LEC-01 Data_structures.pptx
EE-232-LEC-01 Data_structures.pptxiamultapromax
 
Data structures and Alogarithims
Data structures and AlogarithimsData structures and Alogarithims
Data structures and AlogarithimsVictor Palmar
 
Data Analytics with R and SQL Server
Data Analytics with R and SQL ServerData Analytics with R and SQL Server
Data Analytics with R and SQL ServerStéphane Fréchette
 
Introduction to data structures (ss)
Introduction to data structures (ss)Introduction to data structures (ss)
Introduction to data structures (ss)Madishetty Prathibha
 
Data Structures unit I Introduction - data types
Data Structures unit I Introduction - data typesData Structures unit I Introduction - data types
Data Structures unit I Introduction - data typesAmirthaVarshini80
 

Similar to Algorithms and Data Structures~hmftj (20)

Data Structure and its Fundamentals
Data Structure and its FundamentalsData Structure and its Fundamentals
Data Structure and its Fundamentals
 
Introduction to data structure
Introduction to data structureIntroduction to data structure
Introduction to data structure
 
Lecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.ppt
Lecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.pptLecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.ppt
Lecture 1 IntroductionToDataStructures_coursematerial_Draft0.01.ppt
 
Data Structure Introduction chapter 1
Data Structure Introduction chapter 1Data Structure Introduction chapter 1
Data Structure Introduction chapter 1
 
Lecture 1 and 2
Lecture 1 and 2Lecture 1 and 2
Lecture 1 and 2
 
Chapter 1 Introduction to Data Structures and Algorithms.pdf
Chapter 1 Introduction to Data Structures and Algorithms.pdfChapter 1 Introduction to Data Structures and Algorithms.pdf
Chapter 1 Introduction to Data Structures and Algorithms.pdf
 
Data structure
Data structureData structure
Data structure
 
Data structures - Introduction
Data structures - IntroductionData structures - Introduction
Data structures - Introduction
 
DATA STRUCTURE AND ALGORITHMS
DATA STRUCTURE AND ALGORITHMS DATA STRUCTURE AND ALGORITHMS
DATA STRUCTURE AND ALGORITHMS
 
DISE - Database Concepts
DISE - Database ConceptsDISE - Database Concepts
DISE - Database Concepts
 
Introduction-to-Coding-Challenges data structure.pptx
Introduction-to-Coding-Challenges data structure.pptxIntroduction-to-Coding-Challenges data structure.pptx
Introduction-to-Coding-Challenges data structure.pptx
 
Introduction-to-Coding-Challenges in data structure.pptx
Introduction-to-Coding-Challenges in data structure.pptxIntroduction-to-Coding-Challenges in data structure.pptx
Introduction-to-Coding-Challenges in data structure.pptx
 
data structures and its importance
 data structures and its importance  data structures and its importance
data structures and its importance
 
Data Structure the Basic Structure for Programming
Data Structure the Basic Structure for ProgrammingData Structure the Basic Structure for Programming
Data Structure the Basic Structure for Programming
 
EE-232-LEC-01 Data_structures.pptx
EE-232-LEC-01 Data_structures.pptxEE-232-LEC-01 Data_structures.pptx
EE-232-LEC-01 Data_structures.pptx
 
Data structures and Alogarithims
Data structures and AlogarithimsData structures and Alogarithims
Data structures and Alogarithims
 
DataScience_RoadMap_2023.pdf
DataScience_RoadMap_2023.pdfDataScience_RoadMap_2023.pdf
DataScience_RoadMap_2023.pdf
 
Data Analytics with R and SQL Server
Data Analytics with R and SQL ServerData Analytics with R and SQL Server
Data Analytics with R and SQL Server
 
Introduction to data structures (ss)
Introduction to data structures (ss)Introduction to data structures (ss)
Introduction to data structures (ss)
 
Data Structures unit I Introduction - data types
Data Structures unit I Introduction - data typesData Structures unit I Introduction - data types
Data Structures unit I Introduction - data types
 

More from LGS, GBHS&IC, University Of South-Asia, TARA-Technologies

More from LGS, GBHS&IC, University Of South-Asia, TARA-Technologies (20)

GAT Dogar Sons E book
GAT Dogar Sons E bookGAT Dogar Sons E book
GAT Dogar Sons E book
 
POSIMS Point Of Sale & Inventory Management System
POSIMS Point Of Sale & Inventory Management SystemPOSIMS Point Of Sale & Inventory Management System
POSIMS Point Of Sale & Inventory Management System
 
Waste management app launched for lahore | TARA-Technologies
Waste management app launched for lahore | TARA-Technologies Waste management app launched for lahore | TARA-Technologies
Waste management app launched for lahore | TARA-Technologies
 
CV-HMFTJ
CV-HMFTJ CV-HMFTJ
CV-HMFTJ
 
The Way To Perform Hajj Islamic Pilgrimage
The Way To Perform Hajj Islamic PilgrimageThe Way To Perform Hajj Islamic Pilgrimage
The Way To Perform Hajj Islamic Pilgrimage
 
Hajj All Duas * Pilgrimage Supplications
Hajj All Duas *  Pilgrimage SupplicationsHajj All Duas *  Pilgrimage Supplications
Hajj All Duas * Pilgrimage Supplications
 
Web Development Roadmaps ~hmftj
Web Development Roadmaps  ~hmftj Web Development Roadmaps  ~hmftj
Web Development Roadmaps ~hmftj
 
Top Software Houses In Pakistan
Top Software Houses In PakistanTop Software Houses In Pakistan
Top Software Houses In Pakistan
 
Russian Conversations and Dialogues​ -hmftj
Russian Conversations and Dialogues​ -hmftjRussian Conversations and Dialogues​ -hmftj
Russian Conversations and Dialogues​ -hmftj
 
hmftj-curriculum vitae-resume
hmftj-curriculum vitae-resumehmftj-curriculum vitae-resume
hmftj-curriculum vitae-resume
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
 
Emotional Intelligence Info-graphic
Emotional Intelligence Info-graphicEmotional Intelligence Info-graphic
Emotional Intelligence Info-graphic
 
Human Computer Interaction Evaluation
Human Computer Interaction EvaluationHuman Computer Interaction Evaluation
Human Computer Interaction Evaluation
 
A9-HSMS: HCI Prototype Project
A9-HSMS: HCI Prototype Project A9-HSMS: HCI Prototype Project
A9-HSMS: HCI Prototype Project
 
hcimidtermhmftj
hcimidtermhmftjhcimidtermhmftj
hcimidtermhmftj
 
thehomemaster
thehomemasterthehomemaster
thehomemaster
 
cchmftjb-18298
cchmftjb-18298cchmftjb-18298
cchmftjb-18298
 
Good Men Live For Others Precis Writing -hmftj
Good Men Live For Others Precis Writing -hmftjGood Men Live For Others Precis Writing -hmftj
Good Men Live For Others Precis Writing -hmftj
 
Four colors of lies ~hmftj
Four colors of lies ~hmftjFour colors of lies ~hmftj
Four colors of lies ~hmftj
 
R&D Comes to Services: Software House's Pathbreaking Experiments
R&D Comes to Services: Software House's Pathbreaking ExperimentsR&D Comes to Services: Software House's Pathbreaking Experiments
R&D Comes to Services: Software House's Pathbreaking Experiments
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 

Recently uploaded (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Algorithms and Data Structures~hmftj

  • 1. Algorithms and Data Structures Of the many subfields within computerscience, algorithmsand data structures may be the most fundamental—it seems to characterize computer science like perhaps no other. What is involved in the study of algorithms and data structures? Importance Computer Science encompasses theoretical and practical approaches to computation. It's been said that the four essential subdisciplines are:  Theory of Computation  Algorithms and Data Structures  Programming Methodology and Languages  Computer Elements and Architecture
  • 2. The ACM has identified eighteen knowledge areas of Computer Science as: Algorithms and Complexity AL Algorithmic Analysis; Algorithmic Strategies; Data Structures and Algorithms; Automata; Computability;Computational Complexity. Architecture and Organization AR Digital Logic and Digital Systems; Machine- level Data Representation; Assembly-Level Machine Organization; Memory System Organization and Architecture; Interfacing and Communication; Functional Organization; Multiprocessing and Alternative Architectures; Performance Enhancements. Computational Science CN Modeling and Simulation; Processing; Interactive Visualization; Data, Information and Knowledge; Numeric Analysis; Symbolic Computation; Mathematical Modeling; High- Performance Computing. Discrete Structures DS Logic; Sets, Relations, and Functions; Proof Techniques; Basics of Counting; Graphs and Trees; Discrete Probability. Graphics and Visualization GV Media Applications; Digitization; Color Models; Rendering; Modeling; Animation; Visualization. Human- Computer HCI Interactive Systems; Testing; Collaboration and Communication; Statistical Methods; Human
  • 3. Interaction Factors; Mixed, Augmented, and Virtual Reality. Information Assurance and Security IAS Defensive Programming; Threats and Attacks; Network Security; Cryptography;Web Security; Platform Security; Policy and Governance; Digital Forensics; Secure Software Engineering. Information Management IM Database Systems; Data Modeling; Indexing; Key-Value, Document, Relational, and Graph Databases; Query Languages; Transaction Processing; Distributed Databases; Physical Database Design; Data Mining; Information Storage and Retrieval; Multimedia Systems. Intelligent Systems IS Knowledge Representation and Reasoning; Search; Machine Learning; Reasoning Under Uncertainty; Agents; Natural Langauge Processing; Robotics; Speech Recognition and Synthesis; Perception and Computer Vision. Networking and Communication NC Networked Applications; Reliable Data Delivery; Routing and Forwarding; Local and Wide Area Networks; Reource Allocation; Mobility; Social Networking. Operating Systems OS Operating System Organization; Concurrency; Scheduling and Dispatch; Memory Management; Security and Protection; Virtual Machines; Device Management; File Systems;
  • 4. Realtime and Embedded Systems; Fault Tolerance; System Performance and Evaluation. Platform-Based Development PBD Web Platforms; Mobile Platforms; Industrial Platforms; game Platforms. Parallel and Distributed Computing PD Parallel Decomposition; Communication and Coordination; Parallel Algorithms, Analysis, and Programming; Parallel Architecture; Parallel Performance; Distributed Systems; Cloud Computing; Formal Models and Semantics. Programming Languages PL Object Oriented Programming; Functional Programming; Event-Driven and Reactive Programming; Type Systems; Program Representation; Language Translation and Execution; Syntax Analysis; Semantic Analysis; Code Generation; Runtime Systems; Static Analysis; Concurrency and Parallelism; Type Systems; Formal Semantics; Language Pragmatics; Logic Programming. Software Development Fundamentals SDF Algorithms and Design; Fundamental Programming Concepts; Fundamental Data Structures; Development Methods. Software Engineering SE Software Processes; Project Management; Tools and Environments; Requirements Engineering; Software Design; Software
  • 5. Construction; Software Verification and Validation; Software Evolution; Software Reliability;Formal Methods. Systems Fundamentals SF Computational Paradigms; Cross-Layer Communications; State and State Machines; Parallelism; Evaluation; Resource Allocation and Scheduling; Proximity; Virtualization and Isolation; Reliability through Redundancy; Quantitative Evaluation. Social Issues and Professional Practice SP Social Context; Analytic Tools; Professional Ethics; Intellectual Property; Privacy and Civil Liberties; Professional Communication; Sustainability; History; Economics of Computing; Security Policies, Law, and Crime. We study data structures and algorithms because:  Computing systems are concerned with the storage and retrieval of information.  For systems to be economical the data must be organized (into data structures) in such a way as to support efficient manipulation (by algorithms).  Choosing the wrong algorithms and data structures makes a program slow at best and unmaintainable and insecure at worst. Topics
  • 6. While it's possible to study algorithms and data structures exclusively at a theoretical level, we often study them together with introductory software engineering concepts; the major topics, grouping them roughly as follows:  Data: data types, abstract data types, data structures (arrays and links), classes, APIs, collections, OO.  Algorithms: What is an algorithm?, algorithmic patterns and paradigms (recursion, backtracking, search, etc.), complexity analysis.  Software development: abstraction, efficiency, robustness, classification, inheritance and composition, polymorphism, software life cycle, methodology, modeling languages, design patterns, and testing. Data Types During the design of a system, before the algorithms are written and before the data structures are sketched out, we must first identify the kinds of objects we need and how they should behave. A type is a collection of values, like [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error]
  • 7. [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error] [Math Processing Error] A data type is a type together with operations. An abstract data type (ADT) is a data type in which the internal structure and internal workings of the objects of the type are unknown to users of the type. Users can only see the effects of the operations. Types and operations can be given in pictures...
  • 8. ... or with signatures CLUBS : Suit HEARTS : Suit DIAMONDS : Suit SPADES : Suit ACE : Rank TWO : Rank THREE : Rank FOUR : Rank FIVE : Rank SIX : Rank SEVEN : Rank EIGHT : Rank NINE : Rank TEN : Rank JACK : Rank QUEEN : Rank KING : Rank makeCard : Suit × Rank → Card getSuit : Card → Suit getRank : Card → Rank newDeck : Deck positionOf : Deck × Card → int cardAt : Deck × int → Card topCard : Deck → Card shuffle : Deck → Deck split : Deck → Deck
  • 9. Exercise: Draw a picture, and enumerate operations, for the type of integer lists. An integer list is a sequence of zero or more integers with operations such as obtaining the length, adding an item to a given position, removing the nth item, reversing, finding the position of a given item, etc. Collections A collection is a group of elements treated a single object. Most ADTs seem to be collection types. Collection types can be  Homogeneous or heterogeneous  Unordered or ordered  Linear, Hierarchical, Networked, or Non-Positional The latter classification looks like this: Classification Topology Examples SET (NON- POSITIONAL) Unrelated items, such as people in a class or a hand of cards. SEQUENCE (LINEAR) One-to-one relationship, as in a printer queue, ring LAN, or a line at the deli.
  • 10. TREE (HIERARCHICAL) One-to-many relationship, as in a family tree, organization chart, expression tree, or folders and files in a file system. GRAPH (NETWORK) Many-to-many relationship, as in a road map, schedule, belief network, or communication net. Operations common to most collections include  Creation and destruction  Adding, removing, replacing, and searching for elements  Getting the size, or figuring out if it is empty or full  Enumeration (traversal)  Equality testing  Cloning  Serializing Data Structures A data structure is an arrangement of data for the purpose of being able to store and retrieve information. Usually a data structure is some physical representation of an ADT.
  • 11. Example: A list (data type) can be represented by an array (data structure) or by attaching a link from each element to its successor (another kind of data structure). Building Blocks Data structures are built with  Records (a.k.a. structs, classes, hashes), which group entities into a single unit with named fields  Arrays, which store fixed size entities into indexed, contiguous slots in memory  Links (a.k.a. references or pointers) Choosing the Right Data Structure The data structure chosen for a data type must meet the resource constraints of the problem. Figure out the constraints before you start coding! Example: In an accounting system,  Creation and deletion of a new account can be slow  Lookup and update of the balance of a given account must be extremely fast. These are the extremely important questions you must ask to determine acceptable tradeoffs:
  • 12.  Can the data structure be completely filled at the beginning, or will there be insertions intermingled with deletions, lookups, updates, and other operations?  Can items be deleted from the structure?  Will the items always be processed in a well-defined order, or will random-access have to be supported? The Classics History is important. Over time, many data structures have become well-known (for variaous) reasons. Some of these are:  The Skip List  The Cartesian Tree  The Judy Array  ... Wait, I can't make up a great list, but Wikipedia can. Check out Wikpedia's List of Data Structures. Algorithms We design algorithms to carry out the desired behavior of a software system. Good programmers tend to use stepwise refinement when developing algorithms, and understand the tradeoffs between different algorithms for the same problem. Classifying Algorithms
  • 13. There are several classification schemes for algorithms:  By problem domain: numeric, text processing (matching, compression, sequencing), cryptology, fair division, sorting, searching, computational geometry, networks (routing, connectivity, flow, span), computer vision, machine learning.  By design strategy: divide and conquer, greedy, algebraic transformation, dynamic programming, linear programming, brute force (exhaustive search), backtracking,branch and bound, heuristic search, genetic algorithms, simulated annealing, particle swarm, Las Vegas, Monte Carlo, quantum algorithms.  By complexity: constant, logarithmic, linear, linearithmic, quadratic, cubic, polynomial, exponential.  Around the central data structures and their behavior: whether (1) organizational: set, linear, hierachical, or network; or (2) implementational: hashtables, skip lists, red-black trees, a-b trees, cartesian trees, neural networks, Bayesian networks, swarms.  By one of many implementation dimensions: sequential vs. parallel, recursive vs. iterative, deterministic vs. non-deterministic, exact vs. approximate, .... Kinds of Problems This classification has proved useful: Problem Type Description
  • 14. Decision Given [Math Processing Error] and [Math Processing Error], is it true that [Math Processing Error]? Functional Given [Math Processing Error] and [Math Processing Error], find [Math Processing Error] Constraint Given [Math Processing Error] and [Math Processing Error], find an [Math Processing Error] such that [Math Processing Error] Optimization Given [Math Processing Error], find the [Math Processing Error] such that [Math Processing Error] is less than or equal to [Math Processing Error] for all [Math Processing Error]. Choosing the Right Algorithm Choosing the right algorithm is both  an art, because cleverness, insight, ingenuity, and dumb luck are often required to find efficient algorithms for certain problems  a science, because principles of algorithm analysis and widely applicable algorithmic patterns have been developed over time for you to use. The Classics History is important. Over time, many algorithms have become well- known (for variaous) reasons. Some of these are:
  • 15.  Euclid's GCD  The Fast Fourier Transform  Miller-Rabin Primality Test  ... Wait, I can't make up a great list, but Wikipedia can. Check out Wikpedia's List of Algorithms.