ListTools
BinaryPlace
perform a binary placement in a list
Calling Sequence
Parameters
Description
Examples
Compatibility
BinaryPlace(L, x, f, opt1, opt2, ...)
L
-
list, Vector, or one-dimensional Array
x
anything
f
(optional) procedure, operator, or algebraic expression
opt1, opt2, ...
(optional) extra arguments to f
The BinaryPlace(L, x) function performs a binary placement of x in L, where L is assumed to be sorted. It returns the greatest index n such that L[n] precedes x. If x precedes all elements in a list L, then the value 0 is returned.
In this form of the calling sequence, x must be of type numeric or string and L should contain values of the same type in ascending order.
BinaryPlace also accepts a Vector or one-dimensional Array as its first argument. If x precedes all elements in an Array, then the value that is returned is the lowerbound of the Array minus one. Since Vectors, like lists, always have a lowerbound of 1, the value returned for a Vector in this case is 0.
If L is a list, then the returned value n is such that op⁡1..n,L,x,op⁡n+1..−1,L is still a sorted list. If L is a Vector or Array, then the returned value n is such that op⁡convert⁡L..n,list,x,op⁡convert⁡Ln+1..,list is sorted.
If three or more arguments are specified in the calling sequence, then f⁡x,y,opt1,opt2,... must return true if x precedes y.
with⁡ListTools:
L≔1,5,7,8,10:
n≔BinaryPlace⁡L,6
n≔2
op⁡1..n,L,6,op⁡n+1..−1,L
1,5,6,7,8,10
BinaryPlace⁡mac,made,magpie,mail,magic
2
BinaryPlace⁡0,sin⁡12,1,exp⁡−110,verify,less_than
BinaryPlace⁡4,1,2,4,1,2,3,4,2,4,`subset`
1
An example with a reverse-sorted Array. Note that the eight elements of this Array are indexed with the numbers −2 up to 5.
A≔Array⁡−2..5,173,157,101,21,17,−3,−33,−62
By supplying `>` for f, we get BinaryPlace to understand the reverse ordering.
BinaryPlace⁡A,0,`>`
We find that the elements −2 up to 2 are the positive ones, 3 up to 5 are negative.
convert⁡A..2,list
173,157,101,21,17
convert⁡A3..,list
−3,−33,−62
The ListTools[BinaryPlace] command was updated in Maple 18.
The L parameter was updated in Maple 18.
See Also
list
ListTools[BinarySearch]
sort
type/list
type/numeric
type/string
Download Help Document