我正在寻找一种算法来找到整数数组中小于 X 的第一个数字。实际上我正在使用线性搜索,但我认为二进制搜索可能更好(正如我前一段时间已经看到的那样)但我不知道如何自己实现它(不实现修改版本来查找第一个小于X)。如果有比 bin 搜索更好的方法,请告诉我。我需要它,因为该数组在程序运行时被大量访问和修改。
这是当前(繁琐)的实现:
int findmin(int *arr,int n,int size)
{
int i;
for(i = 0; i < size && arr[i] < n; i++)
;
return i-1;
}
该索引用于在特定索引中插入 N 值的功能的参数输入。此函数的索引并在数组中插入一个数字,但在每次插入新数字时仍使其排序而无需调用 sort()。它是一个相关的文件文本解析,解析很多文件和一些相当多的字符。我需要努力使事情尽可能快(根据我的上下文和知识)。
编辑:数组总是排序的,即使在新数字的分割之后也是如此。