• Tidak ada hasil yang ditemukan

Data Structures 1

N/A
N/A
Protected

Academic year: 2025

Membagikan "Data Structures 1"

Copied!
16
0
0

Teks penuh

(1)

Data Structures 1

Instructor: Dr. Sahar Shabanah Fall 2010

(2)

Lectures

ST, 9:30 pm-11:00 pm

Text book:

M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in Java”, 4th Edition, 2005, Wiley, ISBN: 978- 0471738848

Lecture slides will be posted on the course page before each lecture.

Read thru the lecture notes and the assigned readings before class.

Be prepared to ask questions.

Class website:

http://groups.yahoo.com/group/CPCS204_F10/

(3)

Grading

20% Lab & Assignments

20% Mid-Term Exam

20% Final Project

40% Final exam

(4)

Course Content

Object Oriented Design

Arrays & Linked Lists

Analysis tools

Stacks & Queues

Lists

Trees

Heaps

Maps & Tables

Sorting & Searching Algorithms

(5)

Data Structures

A data structure in computer science is a way of storing data to be used efficiently.

A data structure is a representation of a finite data set [2].

Data Structures examples are Array, List, Linked list, Doubly linked list, Stack,

Queue, Hash table, Graph, Heap, Tree,

Binary Search tree, Red-Black tree, etc

(6)

Data Structure Basic Operations

Queries operations

 get information about the data structure.

Search (data structure, key):

searches for a given key in a data structure.

Sort (data structure):

sorts elements of a data structure.

Minimum(datastructure):

finds the element with the minimum value in a data structure.

(7)

Data Structure Basic Operations

Maximum (data structure):

finds the element with the maximum value in a data structure.

Successor (data structure, element):

finds the element that succeeds the given element in a data structure.

Predecessor (data structure, element):

finds the element that precedes the given element in a data structure.

(8)

Data Structures Basic Operations

 Modifying operations:

Change the status of a data structure.

Insert (data structure, element):

inserts an element into a data structure.

Delete (data structure, element):

deletes an element from a data

structure.

(9)

Algorithms

 An algorithm is a sequence of

computational steps that transform the input into the output .

 Algorithms can be classified

according to the problem-solving approach that they use or the

problems that they solve.

(10)

Algorithms with similar problem- solving approach

Recursive Algorithms: convert the

problem into sub-problems, then solve each one using recursion.

Backtracking Algorithms: return a

solution if found or recur through the

problem with every possible choice until solution or failure is reached.

Brute Force Algorithms: try all

possibilities until a satisfactory solution is

found.

(11)

Algorithms with similar problem- solving approach

Divide and Conquer Algorithms: divide the

problem into smaller sub-problems of the same type, and solve these sub-problems recursively, then combine the solutions to the sub-problems into a solution to the original problem.

Dynamic Programming Algorithms: find the best solution of multiple exist solutions. Examples are Knapsack and Activity Selection Problem. Brute Force Algorithms: try all possibilities until a

satisfactory solution is found.

(12)

Algorithms with similar problem- solving approach

Greedy Algorithms: get the best solution at the moment, without regard for future

consequences. By choosing a local optimum at each step, it will end up at a global

optimum. Examples are Prim’s and Dijkstra’s algorithms.

Branch and Bound Algorithms: a tree of sub- problems is formed.

Randomized Algorithms: use a random

number at least once during the computation to make a decision.

(13)

Algorithms solve similar problems

Sorting Algorithms: Bubble Sort, Selection Sort, Insertion Sort, Shell Sort, Merge Sort, Heap Sort, Quick Sort, Bucket Sort, etc.

Linear-Time Sorting: Counting Sort, Radix Sort, Bucket Sort, etc.

Graph Algorithms: Breadth First Search

(Bfs), Depth First Search (Dfs), Topological Sort, Strongly Connected Components,

Generic Minimum Spanning Tree, Kruskal’S, Prim’S, Sin- gle Source Shortest Path,

Dijkstra’S, etc.

(14)

Algorithms solve similar problems

Searching Algorithms:

List Search: Linear Search, Binary Search, etc.

Tree Search: Breadth First Search, Depth First Search, etc.

Informed Search: Best-First Search, A*, etc.

String Matching: Naïve String Matching, Knuth-Morris-Pratt, Boyer-Moore, etc.

(15)

Java Programming Basics

Base Types:

Objects

Enum Types

Methods

Expressions

Control flow

Arrays

Simple Input and Output

(16)

Object-Oriented Design

Intro

Inheritance

Polymorphism

Exceptions

Interfaces and abstract Classes

Casting

Generics

Referensi

Dokumen terkait

Pada penelitian ini akan di analisa perbandingan algortima pengurutan data, yaitu: bubble sort, merge sort, dan quick sort untuk mendapatkan waktu proses yang

Metode Shell Sort pengurutan yang lebih baik dalam menangani banyak data dibandingakan dengan metode Bubble Sort, Insertion Sort, Selection Sort, Hal ini dapat

Pada penelitian ini akan di analisa perbandingan algortima pengurutan data, yaitu: bubble sort, merge sort, dan quick sort untuk mendapatkan waktu proses yang baik dalam

Makalah ini akan mengaplikasikan algoritma sorting(merge sort dan quick sort karena merupakan metode pengurutan tercepat) dan exhaustive search untuk menghasilkan

Penelitian ini bertujuan untuk mengimplementasikan dan membandingkan performa algoritma bubble sort, shell sort, dan quick sort berdasarkan banyaknya langkah, waktu

Perbandingan dilakukan dengan pengimplementasian algoritma Insertion Sort, Selection Sort, Bubble Sort dan Quick Sort, menganalisa kompleksitas waktu tiap algoritma dan keadaan

Penelitian yang dilakukan oleh Sareen (2013) yang berjudul Comparison of Sorting Algorithms (On the Basis of Average Case) dimana metode merge sort dan pengurutan lain

The document discusses two sorting algorithms, Bubble Sort and Maximum Sort, and demonstrates their implementation in Pascal programming