したがって、500,000 要素の配列があります。
float* arrayToBucketize=(float*) malloc(sizeof(float)*500000);
およびバケットを表す配列:
int buckets[5]={0,25,50,75,100};
最初の配列を通過し、各 float 値を見て、それを「バケット」配列と比較し、その float 値を最も近いバケット値に置き換える最速の方法は何ですか。したがって、float 値が 11.25 の場合は 0 に置き換えられます。一方、90.10 は 100 に置き換えられます。
また、その範囲外 (<0 および >100) の値を変更しないようにする必要があります。
for ループと if 条件でこれを実行できることはわかっています。しかし、最適化の悪い習慣で、これを行うためのより効率的な (より高速な) 方法を見つけようとしています。Accelerate フレームワークにこれを実行できる C 関数または iOS 関数があることを願っています。あるいは、一連の Accelerate フレームワーク マトリックス関数かもしれません。
ありがとう