Lecture 19: Trees

Post on 04-Jan-2016

24 views 0 download

Tags:

description

CompSci 105 SS 2005 Principles of Computer Science. Lecture 19: Trees. Lecturer: Santokh Singh. Revision - Sorting. O ( 2 n ). O ( n 3 ). Selection Sort. O ( n 2 ). Merge Sort. O ( n log n ). Faster Code. O ( n ). O (log n ). O (1). 0. 1. 2. 3. 4. 5. 6. 7. C. O. M. P. - PowerPoint PPT Presentation

Transcript of Lecture 19: Trees

1

Lecture 19: Trees

Lecturer: Santokh Singh

CompSci 105 SS 2005

Principles of Computer Science

2

Revision - Sorting

O(n)

FasterCode

O(n2)

O(n3)

O(n log n)

O(log n)

O(1)

O(2n)

Merge Sort

Selection Sort

3

Real Java Code, Textbook, p. 394-396

mergeSort( theArray, first, last )

if (first < last )

{

mid = (first + last ) / 2

mergesort(theArray, first, mid)

mergesort(theArray, mid+1, last)

merge(theArray(first, mid, last )

}

MOC P0 1 2 3

ETU R4 5 6 7

4

Revisision - Merge Sort

Analysis, Textbook, p. 393-398

1 1

2

1 1

2

4

1 1

2

1 1

2

4

8 items

5

Quick Sort

Algorithm

Analysis

Trees

Introduction

General Tree Structures

Binary Trees

Reference-Based Implementation

6

Revision - Partitioning (as seen in L8)

<p p ≥p

938 710 1 2 3 4

713 98

Textbook, p. 399

7

Quicksort

<p p ≥p

Textbook, p. 399

8

MOC P0 1 2 3

ETU R4 5 6 7

Java Code, Textbook, pp. 405-407, Description, Textbook, pp. 398-400

9

MOC P0 1 2 3

ETU R4 5 6 7

Java Code, Textbook, pp. 405-407, Description, Textbook, pp. 398-400

MOC P0 1 2 3

ETU R4 5 6 7

10

MOC P0 1 2 3

ETU R4 5 6 7

Java Code, Textbook, pp. 405-407, Description, Textbook, pp. 398-400

MOC P0 1 2 3

ETU R4 5 6 7

ME O1 2 3

ETU R4 5 6 7

11

MOC P0 1 2 3

ETU R4 5 6 7

Java Code, Textbook, pp. 405-407, Description, Textbook, pp. 398-400

MOC P0 1 2 3

ETU R4 5 6 7

ME O1 2 3

ETU R4 5 6 7

ME1 2

RET U4 5 6 7

12

MOC P0 1 2 3

ETU R4 5 6 7

Java Code, Textbook, pp. 405-407, Description, Textbook, pp. 398-400

MOC P0 1 2 3

ETU R4 5 6 7

ME O1 2 3

ETU R4 5 6 7

ME1 2

M2

RET U4 5 6 7

RET4 5 6

13

MOC P0 1 2 3

ETU R4 5 6 7

Java Code, Textbook, pp. 405-407, Description, Textbook, pp. 398-400

MOC P0 1 2 3

ETU R4 5 6 7

ME O1 2 3

PTU R4 5 6 7

ME1 2

M2

RPT U4 5 6 7

RPT4 5 6

TP4 5

14

Quicksort

MOC P0 1 2 3

ETU R4 5 6 7

MOC P ETU R

MEC O PTU R

MEC O RPT U

MEC O TPT R

Textbook, pp. 398-400

MEC O UTP R

MEC O UTP R

15

Quicksort Complexity

CBA D0 1 2 3

GFE H4 5 6 7

Textbook, pp. 408-410

16

Partitioning

Textbook, p. 401-404

MO P ETU R

17

Partitioning

Textbook, p. 401-404

MO P ETU R

MO P ETU R

18

Partitioning

Textbook, p. 401-404

MO P ETU R

MO P ETU R

19

Partitioning

Textbook, p. 401-404

MO P ETU R

MO P ETU R

MO P ETU R

20

Partitioning

Textbook, p. 401-404

MO P ETU R

MO P ETU R

MO P ETU R

MO P ETU R

21

Partitioning

Textbook, p. 401-404

MO P ETU R

MO P ETU R

MO P ETU R

MO P ETU R

MO E PTU R

22

Partitioning

Textbook, p. 401-404

MO P ETU R

MO P ETU R

MO P ETU R

MO P ETU R

MO E PTU R

MO E PTU R

23

Partitioning

Textbook, p. 401-404

MO P ETU R

MO P ETU R

MO P ETU R

MO P ETU R

MO E PTU R

MO E PTU R

ME O PTU R

24

Mergesort:

Quicksort:

Efficiency: Quicksort vs. Mergesort

25

Sorting

O(n2)O(n log n)

Merge Sort Selection Sort

Quicksort (Worst)Quicksort (Average)

26

Comparing Sorting Algorithms

Merge Sort

Bubble Sort

Quicksort

Selection Sort

Insertion Sort

27

Quick Sort

Algorithm

Analysis

Trees

Introduction

General Tree Structures

Binary Trees

Reference-Based Implementation

28

A Tree

29

Terminology

A

B DC

E GF IH

Textbook, p. 423

NodesEdgesRootLeafParentChildSiblingsAnscestorDescendantSubtrees Height

30

Recurisve Definition

A

B DC

E GF IH

A tree is a root node attached to a set of trees

31

Node: Subtree Referencespublic class TreeNode {

Object item;

TreeNode[] subTrees;

}A

B DC

E GF IH

32

Node: First Child Next Siblingpublic class TreeNode {

Object item;

TreeNode firstChild;

TreeNode nextSibling;

} A

B DC

E GF IH

33

Binary Trees

Textbook, p. 423-4

34

Binary Trees

Textbook, p. 423-4

A binary tree is eitherempty

or is a root node storing an item attached to

a binary tree called the left subtreeand

a binary tree called the right subtree

35

Binary Trees

Textbook, p. 423-4

A binary tree is eitherempty

or is a root node storing an item attached to

a binary tree called the left subtreeand

a binary tree called the right subtree

36

Binary Tree Node (Ref based)public class TreeNode {

Object item;

TreeNode left;

TreeNode right;

}

37

Binary Tree ADTTreeNode createBinaryTree( )

Object getRootItem( )

TreeNode getLeft ( )

TreeNode getRight ( )

setLeft ( TreeNode )

setRight ( TreeNode )

setRootItem( Object )

B

A C

Alternative definition, Textbook, p. 430-431

38// Example of painting beautiful binary trees in java applications:-public void paint(Graphics g){

if(root!= null) draw(1, getWidth()/2, 40,180,80,root, g ); // Recursive method

}public void draw(int order, int x, int y, int xGap, int yGap,BinaryTreeNode

e,Graphics g){if (e.left()!=null){

int leftX = x-xGap; // draws to left now int leftY = // How do we draw child downwards in the application?g.drawLine(x,y,leftX,leftY); // draw the connecting line draw( order+1,leftX, leftY, xGap/2, yGap,e.left(),g); // recursion // int order need not be used – but can be used for depth

}if (e.right()!=null){

// just do similarly for right child now }g.setColor(Color…..); // What circle border color do you like?g.fillOval(x-size, y-size, 2*size, 2*size);g.setColor(Color…..); // Inner color of circleg.fillOval(x-size+1, y-size+1, 2*size-2, 2*size-2);g.setColor(Color….); // Color of values displayedg.drawString(""+e.value(),…, …); // display the value correctly

}