SlideShare a Scribd company logo
1 of 27
Download to read offline
Thinking in Data Structures

Tushar B Kute
http://www.tusharkute.com
Data Structure
●

What is the "Data Structure" ?
–
–

●

Ways to represent data.
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.

Why data structure ?
–
–

Have proven correct algorithms

–
●

To design and implement large-scale computer system
The art of programming

How to master in data structure ?
–

practice, discuss, and think
www.tusharkute.com

2
Need of data structures
●

Data structures organize data
–

●

More powerful computers
–

●

●

More efficient programs.
More complex applications.

More complex applications demand more calculations.
Complex computing tasks are unlike our everyday
experience.

www.tusharkute.com

3
List of data structures
●

Static
–
–

Stack

–
●

Array
Queue

Dynamic
–

Linked list

–

Tree

–

Graph
www.tusharkute.com

4
Choosing a data structure
int p[10], i=0;

int *p, i=0;

while(1)

while(1)

{

{
scanf(“%d”, &p[i]);
i++;

}

scanf(“%d”, &p[i]);
i++;
}

www.tusharkute.com

5
System life cycle
●

Summary
–

●

Requirements
–

●

RADRCV
What inputs, functions, and outputs.

Analysis
–

Break the problem down into manageable pieces.

–

Top-down approach.

–

Bottom-up approach.
www.tusharkute.com

6
System life cycle
●

Design
–

●

Refinement and Coding
–

●

Create abstract data types and the algorithm
specifications, language independent.
Determining data structures and algorithms.

Verification
–

Developing correctness proofs, testing the program,
and removing errors.
www.tusharkute.com

7
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.

www.tusharkute.com

8
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.

www.tusharkute.com

9
Data structure philosophy
●

●

●

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
www.tusharkute.com

10
Example.
for(a=0; a>10; a++)

//loop-1

{
printf(“Hello World...”);
}
for(a=0; a<10; a++)

//loop-2

{
printf(“Hello World...”);
}
www.tusharkute.com

11
Example.
for(a=0; a<=10; a++)

//loop-3

{
printf(“Hello World...”);
}
for(a=0; a!=10; a++)

//loop-4

{
printf(“Hello World...”);
}
www.tusharkute.com

12
Example: check for prime number
flag=0;
for(a=2;a<num;a++)
{
if(num%a==0)
flag=1;
}
if(flag==1)
printf(“Number is not prime.”);
else
printf(“Number is prime.”);
www.tusharkute.com

13
Refinement-1
flag=0;
for(a=2;a<num;a++)
{
if(num%a==0) {
flag=1;
break;
}
}
if(flag==1)
printf(“Number is not prime.”);
else
www.tusharkute.com
printf(“Number is prime.”);

14
Refinement-2
flag=0;
for(a=2;a<num/2;a++)
{
if(num%a==0) {
flag=1;
break;
}
}
if(flag==1)
printf(“Number is not prime.”);
else
www.tusharkute.com
printf(“Number is prime.”);

15
Refinement-3
for(a=2;a<num/2;a++)
{
if(num%a==0)
break;
}
if(a==(num/2))
printf(“Number is prime.”);
else
printf(“Number is not prime.”);
www.tusharkute.com

16
Example: swapping of two numbers, Way-1
a=13, b=29;
temp = a;
a = b;
b = temp;

www.tusharkute.com

17
Way-2
a=13, b=29;
a = a + b;
a = a – b;
b = a – b;

www.tusharkute.com

18
Way-3
a=13, b=29;
a = a ^ b;
b = a ^ b;
a = a ^ b;
or
a^=b^=a^=b;
www.tusharkute.com

19
Worst / Average / Best case
●

Worst-case running time of an algorithm
–

The longest running time for any input of size n

–

An upper bound on the running time for any input

–

Guarantee that the algorithm will never take longer
Example: Sort a set of numbers in increasing order; and the data is in
decreasing order

–

The worst case can occur fairly often

–

E.g. in searching a database for a particular piece of information

●

●

Best-case running time
–

●

Sort a set of numbers in increasing order; and the data is already in
increasing order

Average-case running time
–

May be difficult to define what “average” means
www.tusharkute.com

20
Example: searching in database
●

Best case: O(1)

●

Worst case: O(n)

●

Average case: O(n/2)

www.tusharkute.com

21
Running time of algorithms
●

Bounds are for the algorithms, rather than programs
–

●

Programs are just implementations of an algorithm,
and almost always the details of the program do not
affect the bounds

Bounds are for algorithms, rather than problems
–

A problem can be solved with several algorithms,
some are more efficient than others

www.tusharkute.com

22
Describing algorithms
●

Natural language
–
–

●

English, Chinese
Instructions must be definite and effectiveness.

Graphic representation
–

Flowchart

Work well only if the algorithm is small and simple.
Pseudo language
●

●

–

Readable

Instructions must be definite and effectiveness.
Combining English and C
●

●

–

Simple and Tough task to do.
www.tusharkute.com

23
Algorithm and programs
●

Algorithm: a method or a process followed to solve a
problem.
–

●

An algorithm takes the input to a problem (function) and
transforms it to the output.
–

●

A recipe: The algorithm gives us a “recipe” for solving
the problem by performing a series of steps, where
each step is completely understood.

A mapping of input to output.

A problem can be solved by many algorithms.
www.tusharkute.com

24
A problem can have many solutions
●

For example, the problem of sorting can be solved by the
following algorithms:
–

Insertion sort

–

Bubble sort

–

Selection sort

–

Shell sort

–

Merge sort

–

Radix sort

–

Merge sort

–

Quick sort
www.tusharkute.com

25
Algorithm properties
●

An algorithm possesses the following properties:
–
–

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 be correct.

It must terminate.

A computer program is an instance, or concrete
representation, for an algorithm in some programming
language.
www.tusharkute.com

26
Thank you

This presentation is created using LibreOffice Impress 3.6.2.2
www.tusharkute.com

27

More Related Content

Similar to Thinking in data structures

Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Valeriy Kravchuk
 
Dirty Data? Clean it up! - Rocky Mountain DataCon 2016
Dirty Data? Clean it up! - Rocky Mountain DataCon 2016Dirty Data? Clean it up! - Rocky Mountain DataCon 2016
Dirty Data? Clean it up! - Rocky Mountain DataCon 2016Dan Lynn
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35Bilal Ahmed
 
CSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdf
CSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdfCSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdf
CSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdfMisterPhilips
 
CS3114_09212011.ppt
CS3114_09212011.pptCS3114_09212011.ppt
CS3114_09212011.pptArumugam90
 
Dirty data? Clean it up! - Datapalooza Denver 2016
Dirty data? Clean it up! - Datapalooza Denver 2016Dirty data? Clean it up! - Datapalooza Denver 2016
Dirty data? Clean it up! - Datapalooza Denver 2016Dan Lynn
 
Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018
Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018
Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018Holden Karau
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukValeriy Kravchuk
 
Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...
Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...
Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...Holden Karau
 
Rules Programming tutorial
Rules Programming tutorialRules Programming tutorial
Rules Programming tutorialSrinath Perera
 
How I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowHow I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowLaura Lorenz
 
R programming for data science
R programming for data scienceR programming for data science
R programming for data scienceSovello Hildebrand
 
Function-Oriented(Lec5) Pantnagar college.pdf
Function-Oriented(Lec5) Pantnagar college.pdfFunction-Oriented(Lec5) Pantnagar college.pdf
Function-Oriented(Lec5) Pantnagar college.pdfyash32148
 

Similar to Thinking in data structures (20)

Intro_2.ppt
Intro_2.pptIntro_2.ppt
Intro_2.ppt
 
Intro.ppt
Intro.pptIntro.ppt
Intro.ppt
 
Intro.ppt
Intro.pptIntro.ppt
Intro.ppt
 
Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013
 
Lec1
Lec1Lec1
Lec1
 
Lec1
Lec1Lec1
Lec1
 
Dirty Data? Clean it up! - Rocky Mountain DataCon 2016
Dirty Data? Clean it up! - Rocky Mountain DataCon 2016Dirty Data? Clean it up! - Rocky Mountain DataCon 2016
Dirty Data? Clean it up! - Rocky Mountain DataCon 2016
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35
 
CSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdf
CSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdfCSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdf
CSC 101-CSC 111 - Introduction to Computer Science - Lecture 4.pdf
 
CS3114_09212011.ppt
CS3114_09212011.pptCS3114_09212011.ppt
CS3114_09212011.ppt
 
Dirty data? Clean it up! - Datapalooza Denver 2016
Dirty data? Clean it up! - Datapalooza Denver 2016Dirty data? Clean it up! - Datapalooza Denver 2016
Dirty data? Clean it up! - Datapalooza Denver 2016
 
Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018
Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018
Apache spark as a gateway drug to FP concepts taught and broken - Curry On 2018
 
algo 1.ppt
algo 1.pptalgo 1.ppt
algo 1.ppt
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossuk
 
Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...
Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...
Ml pipelines with Apache spark and Apache beam - Ottawa Reactive meetup Augus...
 
Rules Programming tutorial
Rules Programming tutorialRules Programming tutorial
Rules Programming tutorial
 
Lec1
Lec1Lec1
Lec1
 
How I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with AirflowHow I learned to time travel, or, data pipelining and scheduling with Airflow
How I learned to time travel, or, data pipelining and scheduling with Airflow
 
R programming for data science
R programming for data scienceR programming for data science
R programming for data science
 
Function-Oriented(Lec5) Pantnagar college.pdf
Function-Oriented(Lec5) Pantnagar college.pdfFunction-Oriented(Lec5) Pantnagar college.pdf
Function-Oriented(Lec5) Pantnagar college.pdf
 

More from Tushar B Kute

Apache Pig: A big data processor
Apache Pig: A big data processorApache Pig: A big data processor
Apache Pig: A big data processorTushar B Kute
 
01 Introduction to Android
01 Introduction to Android01 Introduction to Android
01 Introduction to AndroidTushar B Kute
 
Ubuntu OS and it's Flavours
Ubuntu OS and it's FlavoursUbuntu OS and it's Flavours
Ubuntu OS and it's FlavoursTushar B Kute
 
Install Drupal in Ubuntu by Tushar B. Kute
Install Drupal in Ubuntu by Tushar B. KuteInstall Drupal in Ubuntu by Tushar B. Kute
Install Drupal in Ubuntu by Tushar B. KuteTushar B Kute
 
Install Wordpress in Ubuntu Linux by Tushar B. Kute
Install Wordpress in Ubuntu Linux by Tushar B. KuteInstall Wordpress in Ubuntu Linux by Tushar B. Kute
Install Wordpress in Ubuntu Linux by Tushar B. KuteTushar B Kute
 
Share File easily between computers using sftp
Share File easily between computers using sftpShare File easily between computers using sftp
Share File easily between computers using sftpTushar B Kute
 
Signal Handling in Linux
Signal Handling in LinuxSignal Handling in Linux
Signal Handling in LinuxTushar B Kute
 
Implementation of FIFO in Linux
Implementation of FIFO in LinuxImplementation of FIFO in Linux
Implementation of FIFO in LinuxTushar B Kute
 
Implementation of Pipe in Linux
Implementation of Pipe in LinuxImplementation of Pipe in Linux
Implementation of Pipe in LinuxTushar B Kute
 
Basic Multithreading using Posix Threads
Basic Multithreading using Posix ThreadsBasic Multithreading using Posix Threads
Basic Multithreading using Posix ThreadsTushar B Kute
 
Part 04 Creating a System Call in Linux
Part 04 Creating a System Call in LinuxPart 04 Creating a System Call in Linux
Part 04 Creating a System Call in LinuxTushar B Kute
 
Part 03 File System Implementation in Linux
Part 03 File System Implementation in LinuxPart 03 File System Implementation in Linux
Part 03 File System Implementation in LinuxTushar B Kute
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingTushar B Kute
 
Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Tushar B Kute
 
Open source applications softwares
Open source applications softwaresOpen source applications softwares
Open source applications softwaresTushar B Kute
 
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)Tushar B Kute
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
 
Technical blog by Engineering Students of Sandip Foundation, itsitrc
Technical blog by Engineering Students of Sandip Foundation, itsitrcTechnical blog by Engineering Students of Sandip Foundation, itsitrc
Technical blog by Engineering Students of Sandip Foundation, itsitrcTushar B Kute
 
Chapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B KuteChapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B KuteTushar B Kute
 
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B KuteChapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B KuteTushar B Kute
 

More from Tushar B Kute (20)

Apache Pig: A big data processor
Apache Pig: A big data processorApache Pig: A big data processor
Apache Pig: A big data processor
 
01 Introduction to Android
01 Introduction to Android01 Introduction to Android
01 Introduction to Android
 
Ubuntu OS and it's Flavours
Ubuntu OS and it's FlavoursUbuntu OS and it's Flavours
Ubuntu OS and it's Flavours
 
Install Drupal in Ubuntu by Tushar B. Kute
Install Drupal in Ubuntu by Tushar B. KuteInstall Drupal in Ubuntu by Tushar B. Kute
Install Drupal in Ubuntu by Tushar B. Kute
 
Install Wordpress in Ubuntu Linux by Tushar B. Kute
Install Wordpress in Ubuntu Linux by Tushar B. KuteInstall Wordpress in Ubuntu Linux by Tushar B. Kute
Install Wordpress in Ubuntu Linux by Tushar B. Kute
 
Share File easily between computers using sftp
Share File easily between computers using sftpShare File easily between computers using sftp
Share File easily between computers using sftp
 
Signal Handling in Linux
Signal Handling in LinuxSignal Handling in Linux
Signal Handling in Linux
 
Implementation of FIFO in Linux
Implementation of FIFO in LinuxImplementation of FIFO in Linux
Implementation of FIFO in Linux
 
Implementation of Pipe in Linux
Implementation of Pipe in LinuxImplementation of Pipe in Linux
Implementation of Pipe in Linux
 
Basic Multithreading using Posix Threads
Basic Multithreading using Posix ThreadsBasic Multithreading using Posix Threads
Basic Multithreading using Posix Threads
 
Part 04 Creating a System Call in Linux
Part 04 Creating a System Call in LinuxPart 04 Creating a System Call in Linux
Part 04 Creating a System Call in Linux
 
Part 03 File System Implementation in Linux
Part 03 File System Implementation in LinuxPart 03 File System Implementation in Linux
Part 03 File System Implementation in Linux
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module Programming
 
Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)
 
Open source applications softwares
Open source applications softwaresOpen source applications softwares
Open source applications softwares
 
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 
Technical blog by Engineering Students of Sandip Foundation, itsitrc
Technical blog by Engineering Students of Sandip Foundation, itsitrcTechnical blog by Engineering Students of Sandip Foundation, itsitrc
Technical blog by Engineering Students of Sandip Foundation, itsitrc
 
Chapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B KuteChapter 01 Introduction to Java by Tushar B Kute
Chapter 01 Introduction to Java by Tushar B Kute
 
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B KuteChapter 02: Classes Objects and Methods Java by Tushar B Kute
Chapter 02: Classes Objects and Methods Java by Tushar B Kute
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Thinking in data structures

  • 1. Thinking in Data Structures Tushar B Kute http://www.tusharkute.com
  • 2. Data Structure ● What is the "Data Structure" ? – – ● Ways to represent data. 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. Why data structure ? – – Have proven correct algorithms – ● To design and implement large-scale computer system The art of programming How to master in data structure ? – practice, discuss, and think www.tusharkute.com 2
  • 3. Need of data structures ● Data structures organize data – ● More powerful computers – ● ● More efficient programs. More complex applications. More complex applications demand more calculations. Complex computing tasks are unlike our everyday experience. www.tusharkute.com 3
  • 4. List of data structures ● Static – – Stack – ● Array Queue Dynamic – Linked list – Tree – Graph www.tusharkute.com 4
  • 5. Choosing a data structure int p[10], i=0; int *p, i=0; while(1) while(1) { { scanf(“%d”, &p[i]); i++; } scanf(“%d”, &p[i]); i++; } www.tusharkute.com 5
  • 6. System life cycle ● Summary – ● Requirements – ● RADRCV What inputs, functions, and outputs. Analysis – Break the problem down into manageable pieces. – Top-down approach. – Bottom-up approach. www.tusharkute.com 6
  • 7. System life cycle ● Design – ● Refinement and Coding – ● Create abstract data types and the algorithm specifications, language independent. Determining data structures and algorithms. Verification – Developing correctness proofs, testing the program, and removing errors. www.tusharkute.com 7
  • 8. 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. www.tusharkute.com 8
  • 9. 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. www.tusharkute.com 9
  • 10. Data structure philosophy ● ● ● 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 www.tusharkute.com 10
  • 11. Example. for(a=0; a>10; a++) //loop-1 { printf(“Hello World...”); } for(a=0; a<10; a++) //loop-2 { printf(“Hello World...”); } www.tusharkute.com 11
  • 12. Example. for(a=0; a<=10; a++) //loop-3 { printf(“Hello World...”); } for(a=0; a!=10; a++) //loop-4 { printf(“Hello World...”); } www.tusharkute.com 12
  • 13. Example: check for prime number flag=0; for(a=2;a<num;a++) { if(num%a==0) flag=1; } if(flag==1) printf(“Number is not prime.”); else printf(“Number is prime.”); www.tusharkute.com 13
  • 14. Refinement-1 flag=0; for(a=2;a<num;a++) { if(num%a==0) { flag=1; break; } } if(flag==1) printf(“Number is not prime.”); else www.tusharkute.com printf(“Number is prime.”); 14
  • 15. Refinement-2 flag=0; for(a=2;a<num/2;a++) { if(num%a==0) { flag=1; break; } } if(flag==1) printf(“Number is not prime.”); else www.tusharkute.com printf(“Number is prime.”); 15
  • 17. Example: swapping of two numbers, Way-1 a=13, b=29; temp = a; a = b; b = temp; www.tusharkute.com 17
  • 18. Way-2 a=13, b=29; a = a + b; a = a – b; b = a – b; www.tusharkute.com 18
  • 19. Way-3 a=13, b=29; a = a ^ b; b = a ^ b; a = a ^ b; or a^=b^=a^=b; www.tusharkute.com 19
  • 20. Worst / Average / Best case ● Worst-case running time of an algorithm – The longest running time for any input of size n – An upper bound on the running time for any input – Guarantee that the algorithm will never take longer Example: Sort a set of numbers in increasing order; and the data is in decreasing order – The worst case can occur fairly often – E.g. in searching a database for a particular piece of information ● ● Best-case running time – ● Sort a set of numbers in increasing order; and the data is already in increasing order Average-case running time – May be difficult to define what “average” means www.tusharkute.com 20
  • 21. Example: searching in database ● Best case: O(1) ● Worst case: O(n) ● Average case: O(n/2) www.tusharkute.com 21
  • 22. Running time of algorithms ● Bounds are for the algorithms, rather than programs – ● Programs are just implementations of an algorithm, and almost always the details of the program do not affect the bounds Bounds are for algorithms, rather than problems – A problem can be solved with several algorithms, some are more efficient than others www.tusharkute.com 22
  • 23. Describing algorithms ● Natural language – – ● English, Chinese Instructions must be definite and effectiveness. Graphic representation – Flowchart Work well only if the algorithm is small and simple. Pseudo language ● ● – Readable Instructions must be definite and effectiveness. Combining English and C ● ● – Simple and Tough task to do. www.tusharkute.com 23
  • 24. Algorithm and programs ● Algorithm: a method or a process followed to solve a problem. – ● An algorithm takes the input to a problem (function) and transforms it to the output. – ● A recipe: The algorithm gives us a “recipe” for solving the problem by performing a series of steps, where each step is completely understood. A mapping of input to output. A problem can be solved by many algorithms. www.tusharkute.com 24
  • 25. A problem can have many solutions ● For example, the problem of sorting can be solved by the following algorithms: – Insertion sort – Bubble sort – Selection sort – Shell sort – Merge sort – Radix sort – Merge sort – Quick sort www.tusharkute.com 25
  • 26. Algorithm properties ● An algorithm possesses the following properties: – – 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 be correct. It must terminate. A computer program is an instance, or concrete representation, for an algorithm in some programming language. www.tusharkute.com 26
  • 27. Thank you This presentation is created using LibreOffice Impress 3.6.2.2 www.tusharkute.com 27