lecture 81 table search (1) 02art history 04biology 19chemistry 21civil engineering 24comp inf sys...

Post on 03-Jan-2016

217 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

lecture 8 1

Table Search (1)02 ART HISTORY04 BIOLOGY19 CHEMISTRY21 CIVIL ENGINEERING24 COMP INF SYS32 ECONOMICS39 FINANCE43 MANAGEMENT49 MARKETING54 STATISTICS

05 COURSES OCCURS 10 TIMES INDEXED BY ARR-SUB.

10 CALL-NUM PIC 99

10 SUBJECT PIC X(15)

lecture 8 2

Table Search (2)

• What subject has value 39?

• Find a record in the table that matches a query– The search key is the entry value we search on

• What algorithm will find this record?

lecture 8 3

Seqential Search

02 ART HISTORY

04 BIOLOGY

19 CHEMISTRY

21 CIVIL ENGINEERING

24 COMP INF SYS

32 ECONOMICS

39 FINANCE

43 MANAGEMENT

49 MARKETING

53 STATISTICS

39

1st try

2nd try

3rd try

4th try

5th try

6th try

7th tryFINANCE

Match

lecture 8 4

Search Key : CALL-NUM

MOVE “N” ITEM-FOUND.

PERFORM

VARYING ARR-SUB FROM 1 BY 1

UNTIL ITEM-FOUND = “Y”

OR ARR-SUB = 10

IF CALL-NUM (ARR-SUB) = 39

MOVE “Y” TO ITEM-FOUND

END-PERFORM

lecture 8 5

SEARCH Statement (1)

SET ARR-SUB TO 1.

SEARCH COURSES

AT END

MOVE “N” TO ITEM-FOUND

WHEN CALL-NUM (ARR-SUB) = 39

MOVE “Y” TO ITEM-FOUND.

lecture 8 6

SEARCH Statement (2)

SEARCH ident-1 VARYING {ident-2 | index-name}{ AT END statement-1}{ WHEN cond-1 statement-2}

END-SEARCH.

• Sequential search starts at the entry denoted by the current index value• AT END is executed when the end of the table is reached• One or more WHEN clauses allowed

– When any of one them are satisfied the search ends

• VARYING clause names the index– May associate more than one index with the table– Uses the first index named in the INDEX BY clause if omitted

lecture 8 7

Binary Search

02 ART HISTORY

04 BIOLOGY

19 CHEMISTRY

21 CIVIL ENGINEERING

24 COMP INF SYS

32 ECONOMICS

39 FINANCE

43 MANAGEMENT

49 MARKETING

53 STATISTICS

39

1st try

FINANCEMatch

2nd try

3rd try

lecture 8 8

SEARCH Statement (3)

05 COURSES OCCURS 10 TIMES ASCENDING KEY IS CALL-NUM INDEXED BY ARR-SUB.

10 CALL-NUM PIC 9910 SUBJECT PIC X(15)

SEARCH ALL COURSESAT END

MOVE “N” TO ITEM-FOUNDWHEN CALL-NUM (ARR-SUB) = 39

MOVE “Y” TO ITEM-FOUND.

lecture 8 9

SEARCH Statement (4)

L# table-name OCCURS integer TIMES

{ASCENDING/DESCENDING} KEY IS ident-1

INDEXED BY {index-1 …}

SEARCH ALL table-name

{ AT END statement-1}

{ WHEN statement-2}

END-SEARCH.

lecture 8 10

SEARCH Statement (5)

• For Binary Search use SEARCH ALL

• The entries in the table should be sorted in ascending/descending order on the key field

• AT END is executed if no entry satisfies the condition

• The search ends if the WHEN clause is satisfied

lecture 8 11

Binary Search : Worst Case

NUMBER OF ELEMENTS MAXIMUM NUMBER OF COMPARISONS

8 - 15

16 - 31

32 - 63

64 - 127

128 - 255

256 - 511

512 - 1023

1024 - 2047

2048 - 4095

(less than 24)

(less than 25)

(less than 26)

(less than 27)

(less than 28)

(less than 29)

(less than 210)

(less than 211)

(less than 212)

4

5

6

7

8

9

10

11

12

lecture 8 12

Sort (1)

NAME YEAR MAJOR

Smith 1 Liberal artsJones 4 EngineeringAdams 3 BusinessHowe 2 Liberal artsFrank 1 EngineeringZev 4 BusinessBenjamin 4 BusinessGrauer 3 Liberal artsCrawford 2 EngineeringDeutsch 4 BusinessMakoske 1 Business

Unsorted Data

lecture 8 13

Sort (2)Primary Key: Name (Ascending)

NAME YEAR MAJOR

Adams 3 BusinessBenjamin 4 Business Crawford 2 EngineeringDeutsch 4 BusinessFrank 1 Engineering Grauer 3 Liberal arts Howe 2 Liberal artsJones 4 EngineeringMakoske 1 BusinessSmith 1 Liberal artsZev 4 Business

Sorted Data, One Key

lecture 8 14

Sort (3)

Sorted Data, Two Keys

Primary key: Year (descending)Secondary key: Name (ascending)

NAME YEAR MAJOR

Benjamin 4 Business Deutsch 4 BusinessJones 4 EngineeringZev 4 Business Adams 3 Business Grauer 3 Liberal arts Crawford 2 EngineeringHowe 2 Liberal artsFrank 1 Engineering Makoske 1 BusinessSmith 1 Liberal arts

lecture 8 15

Sort (4)Primary Key: major (Ascending)Secondary Key: year (Descending)Tertiary Key: name (Ascending)

NAME YEAR MAJOR

Benjamin 4 Business Deutsch 4 BusinessZev 4 Business Adams 3 BusinessMakoske 1 Business Jones 4 Engineering Crawford 2 Engineering Frank 1 Engineering Grauer 3 Liberal arts Howe 2 Liberal artsSmith 1 Liberal arts

Sorted Data, Three Keys

lecture 8 16

ASCII Table(space)

“ (quotation mark) $ (currency symbol)‘ (apostrophe) ( (left parenthesis) ) (right parenthesis) * (asterisk)+ (plus symbol) , (comma) - (hyphen, minus symbol) . (period, decimal point)/ (slash)

0 through 9; (semicolon)< (less than)= (equal sign)> (greater than)

A through Z (upper case)a through z (lower case)

lecture 8 17

SORT : A Table

SORT table-name

{ ON ASCENDING/DESCENDING KEY ident-1… }

{ WITH DUPLICATES IN ORDER}.

• ASCENDING/DESCENDING may be defined at the table declaration– Key fields at the SORT statement override

• DUPLICATES clause order by table order

top related