Module 9: Array processing and Table handling
Comparison between SEARCH and SEARCH ALL
|
SEARCH (Serial/Linear Search)
|
SEARCH ALL (Binary Search)
|
|
It does sequential search
|
It does binary search
|
|
Array must have INDEX
|
Array must have INDEX
|
|
Not mandatory for array to be in sorted order
|
Array should be in sorted order of searching parameter. It can be sorted using ASCENDING/DESCENDING option of OCCURS clause
|
|
Multiple WHEN conditions can be specified
|
Only one WHEN condition can be coded
|
|
Condition can’t be compound condition (i.e. you cannot concatenate multiple conditions using AND/OR)
|
Only ‘EQUAL TO’ comparison is possible. Compound condition is allowed
|
|
Index should be set to 1 before SEARCH statement
|
Index need not be set to 1
|
Preferred when:
- Array size is small
- Array contains duplicates
- Array loaded in such way that most frequently accessing element can be loaded in the first few occurrences
|
Preferred when:-
- Array size is large
- Array contains no duplicates
- Array contains unique key
- There is no track of frequently accessed elements
|
|
Linear search is slower than binary search
|
Faster than serial search
|
|
Time take to search element keeps increasing as the number of elements increased when searching through linear process
|
Binary search compresses the searching period by dividing the whole array into half
|