Vectors
Utility functions for vectors.
Interface
find_upper_bound
Searches a sorted vec and returns the first index that contains a value greater or equal to element. If no such index exists (i.e. all values in the vector are strictly less than element), and the vector length is returned.
Time complexity O(log n).
public fun find_upper_bound(vec: vector<u64>, element: u64): u64@param vec: The vector to be searched.
@param element: We check if there is a value higher than it in the vector.
@return u64. The index of the member that is larger than
element. The length is returned if no member is found.
lt
Checks if a is smaller than b. E.g. x"123" < x"456".
public fun lt(a: vector<u8>, b: vector<u8>): bool@param a: The first operand.
@param b: The second operand..
@return bool. If
ais smaller thanb.
Aborts
aandbhave different lengths.
gt
Checks if a is larger than b. E.g. x"123" < x"456".
public fun gt(a: vector<u8>, b: vector<u8>): bool@param a: The first operand.
@param b: The second operand..
@return bool. If
ais larger thanb.
Aborts
aandbhave different lengths.
lte
Checks if a is smaller or equal to b. E.g. x"123" =< x"456".
public fun lte(a: vector<u8>, b: vector<u8>): bool@param a: The first operand.
@param b: The second operand..
@return bool. If
ais smaller or equal tob.
Aborts
aandbhave different lengths.
gte
Checks if a is larger or equal to b. E.g. x"123" =< x"456".
public fun gte(a: vector<u8>, b: vector<u8>): bool @param a: The first operand.
@param b: The second operand..
@return bool. If
ais larger or equal tob.
Aborts
aandbhave different lengths.
ascending_insertion_sort
Sorts a a in ascending order. E.g. [342] => [234].
public fun ascending_insertion_sort(a: vector<u256>): vector<u256>@param a: The vector to sort.
@return vector. Sorted
a.
Aborts
aandbhave different lengths.
descending_insertion_sort
Sorts a a in descending order. E.g. [342] => [432].
public fun descending_insertion_sort(a: vector<u256>): vector<u256>@param a: The vector to sort.
@return vector. Sorted
a.
Aborts
aandbhave different lengths.
quick_sort
Sorts a values. E.g. [342] => [234].
This function mutates the original vector.
public fun quick_sort(values: &mut vector<u256>, left: u64, right: u64)@param values: The vector to sort.
@param left: The smaller side of the pivot. Pass 0.
@param right: The larger side of the pivot. Pass
vector::length - 1.
Last updated
Was this helpful?