ArrayBSearch работает правильно.
ArrayBSearch расшифровывается как бинарный поиск в отсортированном массиве. Если массив содержит только уникальные элементы, то все ищется точно.
Если же есть повторяющиеся значения, то находится любая позиция, в которой присутствует поисковое значение. Такова реализация двоичного (делением пополам) поиска.
В данном случае Вам лучше написать свою линейную функцию поиска путем перебора. Или комбинированный поиск на основе ArrayBSearch и последующим откатом назад до первого значения.
ArrayBSearch расшифровывается как бинарный поиск в отсортированном массиве. Если массив содержит только уникальные элементы, то все ищется точно.
Если же есть повторяющиеся значения, то находится любая позиция, в которой присутствует поисковое значение. Такова реализация двоичного (делением пополам) поиска.
В данном случае Вам лучше написать свою линейную функцию поиска путем перебора. Или комбинированный поиск на основе ArrayBSearch и последующим откатом назад до первого значения.
2Renat
Подтверждаю.
Благодарю за разъяснение.
Не проблема, напишу, найду как мне нужно, но я думаю здесь именно тот случай когда абсолютное
большинство пользователей со мной согласится:
Лучше бы все-же доработать штатную функцию что-бы возвращаемый индекс вместо
был-бы
иначе нет смысла пользоваться функцией в чистом виде для поиска в массивах с повторяющимися значениями в первом измерении массива.
Я думаю уважаемый ALL согласится со мной что задавая поиск конкретного значения мы как правило
хотим найти именно ПЕРВЫЙ элемент соответствующий условию поиска и он всегда будет удовлетворять
условию "найти любой соответствующий". В данном же случае имеем обратное - ищется любой соответствующий который только в случае уникальных элементов действительно будет первым
Или я не прав. Как думаешь уважаемый ALL. И что думают по этому поводу разработчики.
Если массив содержит только уникальные элементы, то все ищется точно.
Подтверждаю.
Если же есть повторяющиеся значения, то находится любая позиция, в которой присутствует поисковое значение. Такова реализация двоичного (делением пополам) поиска.
Благодарю за разъяснение.
В данном случае Вам лучше написать свою ... функцию ...
.Не проблема, напишу, найду как мне нужно, но я думаю здесь именно тот случай когда абсолютное
большинство пользователей со мной согласится:
Лучше бы все-же доработать штатную функцию что-бы возвращаемый индекс вместо
... Возвращает индекс первого найденного элемента в первом измерении массива...
.был-бы
... Возвращает индекс первого найденного элемента в первом измерении массива...
.иначе нет смысла пользоваться функцией в чистом виде для поиска в массивах с повторяющимися значениями в первом измерении массива.
Я думаю уважаемый ALL согласится со мной что задавая поиск конкретного значения мы как правило
хотим найти именно ПЕРВЫЙ элемент соответствующий условию поиска и он всегда будет удовлетворять
условию "найти любой соответствующий". В данном же случае имеем обратное - ищется любой соответствующий который только в случае уникальных элементов действительно будет первым
Или я не прав. Как думаешь уважаемый ALL. И что думают по этому поводу разработчики.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а результаты получаются вот такие:
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =9
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 4
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =4
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 3
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =2
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 2
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =0
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 1
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 9=4;2;9;10;34;6;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 8=4;1;248;27;2;0;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 7=4;2;7;12;35;4;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 6=4;2;25;18;48;5;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 5=3;2;23;6;6;1;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 4=3;1;188;2;1;0;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 3=3;4;7;4;36;86;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 2=2;2;28;24;9;2;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 1=2;1;13;6;2;0;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Сортированный myarray 0=1;4;5;10;13;94;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим сортировку
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 9=4;1;248;27;2;0;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 8=3;4;7;4;36;86;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 7=2;2;28;24;9;2;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 6=4;2;9;10;34;6;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 5=3;2;23;6;6;1;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 4=4;2;25;18;48;5;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 3=2;1;13;6;2;0;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 2=4;2;7;12;35;4;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 1=3;1;188;2;1;0;
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Несортированный myarray 0=1;4;5;10;13;94;
Поскольку в help функции записано
Возвращает индекс первого найденного элемента в первом измерении массива
то соответственно хотелось бы получить результаты
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =6
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 4
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =3
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 3
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =1
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 2
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Найденный элемент имеет индекс =0
2006.01.11 22:30:44 test_ARRAY EURUSD,H4: Производим поиск значения 1
Прошу разработчиков или людей понимающих суть проблеммы обьяснить происходящее:
Или я неправильно пользуюсь функцией ,
или я неправильно воспринимаю действительность,
или это глюк,
или это фишка.
Заранее благодарен.
ЗЫЖ используется билд 186.