ScQueryCellIteratorBase::BinarySearch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

To implement the function XLOOKUP in Calc (tdf127293) I need to change ScQueryCellIteratorBase::BinarySearch().

In BinarySearch() at each iteration a check is performed to see whether the range really is sorted; if not orderBroken gets the value true.

The current check is not reliable. If orderBroken gets the value true, the order is broken. But if orderBroken is false, we don't know if the order is broken. BinarySearch only uses log(n)/log(2) of the elements (n) in the range in its search.



Is BinarySearch the proper place to check if the range is sorted correctly?

Shouldn't this happen either at the end of the sorting routine or be left to the user (i.e. if the user states that the range is sorted in the relevant XLOOKUP argument, why should we check that)?

With the information I have now, I would like to remove the orderBroken variable from BinarySearch(), but possibly I am overlooking something.



Winfried




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux