Upcoming SlideShare
×

# Thinking in data structures

942
-1

Published on

Thinking in Data Structures

Published in: Technology, Education
1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total Views
942
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
43
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.