search.h

Author

Zhu Dengda (zhudengda@mail.iggcas.ac.cn)

Date

2024-07-24

Defines

__FOR_EACH_REAL
__FOR_EACH_INT
X(T)

该函数对输入数组进行线性搜索,找到目标值时返回其索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值且小于目标值的索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值的索引。

搜索数组的最值,返回其索引。

比较函数

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在相同最值,该函数返回第一个匹配的索引。

参数:
  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • a[in] 元素 a 地址

  • b[in] 元素 b 地址

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引

返回:

idx 目标值的索引。

返回:

flag 比较结果,(1) a > b, (0) a == b, (-1) a < b

X(T)

该函数对输入数组进行线性搜索,找到目标值时返回其索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值且小于目标值的索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值的索引。

搜索数组的最值,返回其索引。

比较函数

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在相同最值,该函数返回第一个匹配的索引。

参数:
  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • a[in] 元素 a 地址

  • b[in] 元素 b 地址

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引

返回:

idx 目标值的索引。

返回:

flag 比较结果,(1) a > b, (0) a == b, (-1) a < b

X(T)

该函数对输入数组进行线性搜索,找到目标值时返回其索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值且小于目标值的索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值的索引。

搜索数组的最值,返回其索引。

比较函数

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在相同最值,该函数返回第一个匹配的索引。

参数:
  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • a[in] 元素 a 地址

  • b[in] 元素 b 地址

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引

返回:

idx 目标值的索引。

返回:

flag 比较结果,(1) a > b, (0) a == b, (-1) a < b

X(T)

该函数对输入数组进行线性搜索,找到目标值时返回其索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值且小于目标值的索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值的索引。

搜索数组的最值,返回其索引。

比较函数

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在相同最值,该函数返回第一个匹配的索引。

参数:
  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • a[in] 元素 a 地址

  • b[in] 元素 b 地址

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引

返回:

idx 目标值的索引。

返回:

flag 比较结果,(1) a > b, (0) a == b, (-1) a < b

X(T)

该函数对输入数组进行线性搜索,找到目标值时返回其索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值且小于目标值的索引。 如果目标值在数组中未找到,则返回 -1。

搜索数组中最接近目标值的索引。

搜索数组的最值,返回其索引。

比较函数

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在多个目标值,该函数返回第一个匹配的索引。

备注

如果数组中存在相同最值,该函数返回第一个匹配的索引。

参数:
  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • target[in] 要查找的目标值。

  • array[in] 要搜索的数组。

  • size[in] 数组的大小(元素个数)。

  • a[in] 元素 a 地址

  • b[in] 元素 b 地址

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引,如果未找到则返回 -1。

返回:

idx 目标值的索引

返回:

idx 目标值的索引。

返回:

flag 比较结果,(1) a > b, (0) a == b, (-1) a < b

Functions

ssize_t grt_findElement_real_t(const real_t *array, size_t size, real_t target)
ssize_t grt_findElement_float(const float *array, size_t size, float target)
ssize_t grt_findElement_double(const double *array, size_t size, double target)
ssize_t grt_findElement_size_t(const size_t *array, size_t size, size_t target)
ssize_t grt_findLessEqualClosest_real_t(const real_t *array, size_t size, real_t target)
ssize_t grt_findLessEqualClosest_float(const float *array, size_t size, float target)
ssize_t grt_findLessEqualClosest_double(const double *array, size_t size, double target)
size_t grt_findClosest_real_t(const real_t *array, size_t size, real_t target)
size_t grt_findClosest_float(const float *array, size_t size, float target)
size_t grt_findClosest_double(const double *array, size_t size, double target)
size_t grt_findMin_real_t(const real_t *array, size_t size)
size_t grt_findMax_real_t(const real_t *array, size_t size)
size_t grt_findMin_float(const float *array, size_t size)
size_t grt_findMax_float(const float *array, size_t size)
size_t grt_findMin_double(const double *array, size_t size)
size_t grt_findMax_double(const double *array, size_t size)
size_t grt_findMin_size_t(const size_t *array, size_t size)
size_t grt_findMax_size_t(const size_t *array, size_t size)
int grt_compare_real_t(const void *a, const void *b)
int grt_compare_float(const void *a, const void *b)
int grt_compare_double(const void *a, const void *b)
int grt_compare_size_t(const void *a, const void *b)
ssize_t grt_insertOrdered(void *arr, size_t *size, size_t capacity, const void *target, size_t elementSize, bool ascending, int (*compare)(const void*, const void*))

在有序数组中插入元素,元素类型和数组类型需匹配

参数:
  • arr[inout] 有序数组地址

  • size[inout] 数组大小地址

  • capacity[in] 数组最大容量

  • target[in] 元素地址

  • elementSize[in] 元素和数组内元素的字节长度

  • ascending[in] 升序(true) 或 降序(false)

  • compare[in] 比较函数

返回:

pos 插入位置的索引