整数の配列でX未満の最初の数値を見つけるアルゴリズムを探しています。実際、私は線形検索を使用していますが、バイナリ検索の方が良いかもしれないと思います(以前にすでに見たように)が、自分で実装する方法がわかりません(最初のものを見つけるために変更されたバージョンを実装しないでください-より少ないバツ)。ビン検索より良いものがあれば教えてください。この配列は、プログラムの実行中に非常に多くのアクセスと変更が行われるため、必要です。
現在の(重要な)実装は次のとおりです。
int findmin(int *arr,int n,int size)
{
int i;
for(i = 0; i < size && arr[i] < n; i++)
;
return i-1;
}
このインデックスは、特定のインデックスにN値を挿入する関数のパラメータ入力として使用されます。この関数のインデックスであり、配列に数値を挿入しますが、新しい数値が挿入されるたびに、sort()呼び出しなしでソートされます。これは、関連するファイルテキストの解析であり、多くのファイルを解析し、かなりの数の文字を解析します。私は物事をできるだけ速くするためにいくらかの努力をする必要があります(私の文脈と知識において)。
編集:新しい番号を挿入した後でも、配列は常に並べ替えられます。