Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Thinking in data structures

1,413 views

Published on

Thinking in Data Structures

Published in: Technology, Education

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

×