Search in associative arrays
PROBLEM
Given an array A.1,...,A.N of any distinct elements and target value V. Search routine should return an index of V in A. if V is present in the array, and N+1 otherwise.
ALGORITHM
By use of key comparisons alone, it is impossible to complete a search of N items in fewer than lg N comparisons on average. In the Rexx language we would simply store values A.1,...,A.N in an associative array and use the V value as index of associative array to locate the index of V in the A. array.
IMPLEMENTATION
Unit: program
Parameter:
a positive integer N
Notes:
Elements of the array A. are given from keyboard. In next phase user enters the target values V from keyboard. Program displays the index of the V value in the A. array or N+1 when the V value is not present in the array. Program ends when the target value is %
parse arg N
AA. = N + 1
say "Create the A. array"
do J = 1 to N
say J". element?"
parse linein A.J; Aj = A.J; AA.Aj = J
end
do forever
say "Enter a target value"
parse linein V
if V = "%" then exit
say "Index of" V "in A. array is" AA.V
end
|
CONNECTIONS