| 
 Раздельный перебор массива Недавно столкнулся с задачей выборки одинаковых значений из массива с большим количеством элементов (больше тысячи). Задача была перебрать массив (например, ["green", "yellow", "blue", "green", "purple", "green"]) с помощью map и достать из него все green. Но через map довольно медленно. Есть какие-то более быстрые способы? Я слышал про какой-то метод располовинивания массива с большим количеством элементов, но гугл про это ничего толком не выдал :thanks: | 
| 
 Цитата: 
 Цитата: 
 Цитата: 
 | 
| 
 Есть какая-нибудь ссылка на статью про метод деления пополам? | 
| 
 Бенчмарк производительности методов перебора: https://jsben.ch/6S3sP (у меня всегда разный результат). Цитата: 
 | 
| 
 Цитата: 
 Найти бинарным поиском первое попавшееся значение, потом от него пробежаться вправо и влево, пособирать все такие же. Если данная операция будет выполняться многократно, то имеет смысл на старте создать карту (значение -> массив) для всех значений. | 
| 
 Цитата: 
 Цитата: 
 | 
| 
 Цитата: 
 Я возможно неправильно выразился. Применить то его можно, вот только смысл в этом какой? У автора, насколько я понял, стоит задача максимально быстро найти в массиве все значения равные определенной строке. Разве бинарный поиск тут не будет медленнее, чем обычный перебор? | 
| 
 Цитата: 
 Автор не уточнил эти моменты, к сожалению. | 
| 
 Цитата: 
 log2 (N) сравнений. На 1000 элементов 10 сравнений. А если неотсортирован, то ничего, кроме перебора не поможет. Цитата: 
 | 
| 
 Цитата: 
 Цитата: 
 К тому же имеет, скорее всего, до двух тысяч элементов. | 
| Часовой пояс GMT +3, время: 14:58. |