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 representati...
Need of data structures
●

Data structures organize data
–

●

More powerful computers
–

●

●

More efficient programs.
M...
List of data structures
●

Static
–
–

Stack

–
●

Array
Queue

Dynamic
–

Linked list

–

Tree

–

Graph
www.tusharkute.c...
Choosing a data structure
int p[10], i=0;

int *p, i=0;

while(1)

while(1)

{

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

}

scanf(“%d”,...
System life cycle
●

Summary
–

●

Requirements
–

●

RADRCV
What inputs, functions, and outputs.

Analysis
–

Break the p...
System life cycle
●

Design
–

●

Refinement and Coding
–

●

Create abstract data types and the algorithm
specifications,...
Efficiency
●

A solution is said to be efficient if it solves the problem
within its resource constraints.
–
–

●

Space
T...
Data Structure philosophy
●

●

●

Each data structure has costs and benefits.
Rarely is one data structure better than an...
Data structure philosophy
●

●

●

Each problem has constraints on available space and
time.
Only after a careful analysis...
Example.
for(a=0; a>10; a++)

//loop-1

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

//loop-2

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

//loop-3

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

//loop-4

{
printf(“Hello Wor...
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 prim...
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.”);
el...
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.”);
...
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 i...
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...
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 ...
Describing algorithms
●

Natural language
–
–

●

English, Chinese
Instructions must be definite and effectiveness.

Graph...
Algorithm and programs
●

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

●

An algorithm takes the input...
A problem can have many solutions
●

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

Ins...
Algorithm properties
●

An algorithm possesses the following properties:
–
–

It must be composed of a series of concrete ...
Thank you

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

27
Upcoming SlideShare
Loading in …5
×

Thinking in data structures

942
-1

Published on

Thinking in Data Structures

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
942
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
43
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Thinking in data structures

  1. 1. Thinking in Data Structures Tushar B Kute http://www.tusharkute.com
  2. 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. 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. 4. List of data structures ● Static – – Stack – ● Array Queue Dynamic – Linked list – Tree – Graph www.tusharkute.com 4
  5. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  16. 16. 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
  17. 17. Example: swapping of two numbers, Way-1 a=13, b=29; temp = a; a = b; b = temp; www.tusharkute.com 17
  18. 18. Way-2 a=13, b=29; a = a + b; a = a – b; b = a – b; www.tusharkute.com 18
  19. 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. 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. 21. Example: searching in database ● Best case: O(1) ● Worst case: O(n) ● Average case: O(n/2) www.tusharkute.com 21
  22. 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. 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. 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. 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. 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. 27. Thank you This presentation is created using LibreOffice Impress 3.6.2.2 www.tusharkute.com 27
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×