Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Like this presentation? Why not share!

716 views

502 views

502 views

Published on

No Downloads

Total views

716

On SlideShare

0

From Embeds

0

Number of Embeds

3

Shares

0

Downloads

15

Comments

0

Likes

1

No embeds

No notes for slide

The second goal is the “nuts and bolts” of the course.

The third goal prepares a student for the future.

You might believe that faster computers make it unnecessary to be concerned with efficiency. However…

So we need special training.

Space and time are typical constraints for programs.

This does not mean always strive for the most efficient program. If the program operates well within resource constraints, there is no benefit to making it faster or smaller.

Some data structures/algorithms are more complicated than others.

- 1. Lec#1 Data Structures and Algorithms
- 2. What is a data structure? Data structures are used to store data in a computer in an organized fashion. The scheme of organizing related information that considers not only the items stored, but also their relationship to each other . It is a group of data elements grouped together under one name. - These data elements are called members. They can have different types and different lengths. - Some of them store the data of same type while others store different types of data. In programming the term data structure refers to a scheme for organizing related piece of information. Data Structure = Organized Data + Allowed Operations. 2
- 3. Goals of this Course 1. Reinforce the concept that costs and benefits exist for every data structure. 1. Learn the commonly used data structures. These form a programmer's basic data structure ``toolkit.'‘ 1. Understand how to measure the cost of a data structure or program. These techniques also allow you to judge the merits of new data structures that you or others might invent.
- 4. Areas in which data structures are applied Compiler Design Operating System Database Management System Statistical analysis package Numerical Analysis Graphics Artificial Intelligence 4
- 5. The Need for Data Structures Data structures organize data ⇒ more efficient programs. More powerful computers ⇒ more complex applications. More complex applications demand more calculations. Complex computing tasks are unlike our everyday experience.
- 6. Organizing Data Any organization for a collection of records can be searched, processed in any order, or modified. The choice of data structure and algorithm can make the difference between a program running in a few seconds or many days.
- 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.
- 8. Selecting a Data Structure Select a data structure as follows: 1. Analyze the problem to determine the basic operations that must be supported. 2. Quantify the resource constraints for each operation. 3. Select the data structure that best meets these requirements.
- 9. Costs and Benefits Each data structure has costs and benefits. Rarely is one data structure better than another in all situations. Any data structure requires: space for each data item it stores, time to perform each basic operation, programming effort.
- 10. Costs and Benefits (cont) Each problem has constraints on available space and time. Only after a careful analysis of problem characteristics we can know the best data structure for the task. Bank example: Start account: a few minutes Transactions: a few seconds Close account: overnight
- 11. Example 1.2 Problem: Create a database containing information about cities and towns. Tasks: Find by name or attribute or location Exact match, range query, spatial query Resource requirements: Times can be from a few seconds for simple queries to a minute or two for complex queries
- 12. Abstract Data Types Abstract Data Type (ADT): defining a data type in terms of a set of values and a set of operations on that data type. Each ADT operation is defined by its inputs and outputs. Encapsulation: Hide implementation details.
- 13. Data Structure A data structure is the physical implementation of an ADT. Each operation associated with the ADT is implemented by one or more subroutines in the implementation. Data structure usually refers to an organization for data in main memory. File structure: an organization for data on peripheral storage, such as a disk drive.
- 14. Metaphors An ADT manages complexity through abstraction: metaphor. Hierarchies of labels Ex: transistors ⇒ gates ⇒ CPU. In a program, implement an ADT, then think only about the ADT, not its implementation.
- 15. Logical vs. Physical Form Data items have both a logical and a physical form. Logical form: definition of the data item within an ADT. Ex: Integers in mathematical sense: +, - Physical form: implementation of the data item within a data structure. Ex: 16/32 bit integers, overflow.
- 16. Data Type ADT: Type Operations Data Items: Logical Form Data Structure: Storage Space Subroutines Data Items: Physical Form
- 17. Define a linear and non linear data structure • Linear data structure: A linear data structure traverses the data elements sequentially Only one data element can directly be reached. Ex: Arrays, Linked Lists • Non-Linear data structure: Every data item is attached to several other data items in a way that is specific for reflecting relationships. • The data items are not arranged in a sequential structure. • Ex: Trees, Graphs 17
- 18. What are the types of data structures? The types of data structure are: Arrays: A set of homogeneous values. Lists: A group of similar items with connectivity to the previous or/and next data items. Matrix: A way to store data in an organized form in the form of rows and columns. Linked list: Stored data in a linear fashion. Stack: Works in first in last out order. The element inserted first in stack is removed last 18
- 19. Queues: First in First out order. The element inserted first is removed first. Records: A set of fields, where each field consists of data belongs to one data type. Trees: A data structure where the data is organized in a hierarchical structure. This type of data structure follows the sorted order of insertion, deletion and modification of data items. Tables: Data is persisted in the form of rows and columns. These are similar to records, where the result or manipulation of data is reflected for the whole table 19

No public clipboards found for this slide

×
### Save the most important slides with Clipping

Clipping is a handy way to collect and organize the most important slides from a presentation. You can keep your great finds in clipboards organized around topics.

Be the first to comment