你是如何对MA饲料集群的检测进行算法的? - 页 7

 
Aleksey Nikolayev:
为什么不能使用MathQuantile()?
可能是这样。如果你需要在每个柱状图上寻找中位数,你必须看看哪个更快:维护一个有序的数组还是使用这个函数。
 
Aleksey Nikolayev:
为什么不能使用MathQuantile()?

这个函数中的 "概率数组 "是什么--你是如何填写的?

 
我希望有人能告诉我如何用索引绑定对数组进行排序。效率高!)
 
Mikhail Toptunov:
我希望有人能告诉我如何用索引链接对数组进行排序。效率高!)

把索引塞进数组。这只会增加数组的维度。

 

迈克尔,很久以前,我为自己写了一个函数,在一个数组中插入一个新值,以保持它的排序。

也就是说,所有对数组的添加都必须通过这个函数完成。

//находим место для значения в отсортированном массиве и записываем его туда
void SetValueInSortArray(double &eArray[], double eValue)
   {
   //находим индекс, куда будем вставлять элемент
   int eFinish=ArrayRange(eArray,0)-1;
   int eIndex;
   if(eFinish==-1)
      {
      eIndex=0;
      }
   else if(NormalizeDouble(eArray[eFinish]-eValue,8)<0)
      {
      eIndex=eFinish+1;
      }
   else
      {
      int eLower=0;
      int eUpper=eFinish;
      eIndex=0;
      while(eLower<=eUpper)
         {
         eIndex=(eLower+eUpper)/2;
         if(NormalizeDouble(eArray[eIndex]-eValue,8)>=0)
            {
            if(eIndex>0 && NormalizeDouble(eArray[eIndex-1]-eValue,8)<0)
               {
               break;
               }
            else
               {
               eUpper=eIndex-1;
               }
            }
         if(NormalizeDouble(eArray[eIndex]-eValue,8)<0)
            {
            eLower=eIndex+1;
            }
         }
      }
   //вставка элемента в начало массива
   if(eIndex==0)
      {
      if(ArrayRange(eArray,0)==0)
         {
         ArrayResize(eArray,1);
         }
      else
         {
         ArrayCopy(eArray,eArray,1,0);
         }
      }
   //вставка элемента в конец массива
   else if(eIndex>=ArrayRange(eArray,0))
      {
      ArrayResize(eArray,eIndex+1);
      }
   //вставка элемента в середину массива
   else
      {
      ArrayCopy(eArray,eArray,eIndex,eIndex-1);
      }
   eArray[eIndex]=eValue;
   }  
使用二进制搜索,它应该是快速的。
 
Mikhail Toptunov:
我希望有人能告诉我如何用索引映射对数组进行排序。效率高!)

二维数组,ArraySort()函数

 
呐,为一个元素寻找空间和对整个数组进行排序是一个非常不同的时间。
 
Aleksey Vyazmikin:

这个函数中的 "概率数组 "是什么--你是如何填写的?

例如,要计算的量级是什么。

{0.5} - 中位数

{0.25,0.5,0.75} - 四分位数

{0.01, 0.02, ..., 0.99}--持久物

 
Mikhail Toptunov:
我希望有人能告诉我如何通过绑定索引对数组进行排序。效率高!)

尝试MathQuickSort()

 
Mikhail Toptunov:

例子。

30个MA价格值的数组,寻找有序数组的中间

我们在数组的中间得到15(L0) 的值,然后我们从L0向下和L0向上得到两个数组,并找到这些数组的中间,以此类推,直到我们得到fokus(例如七个值)。

而且最后会变成 "嘀"。

答案很简单--数学处理有误导性