Сохранен 385
https://2ch.hk/b/res/199164010.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Анон я самоучка и никогда не углублялся джаваскрипт

 Аноним 30/06/19 Вск 21:51:10 #1 №199164010 
1HP8l7LMMt7Sh5UoO1T-yLQ.png
Анон я самоучка и никогда не углублялся джаваскрипт поэтому прошу не кидаться говном, мне очень нужен код который быстро перебрал бы числовой массив из примерно 3000 элементов и оставил там только 2 эемента самый большой и самый маленький. Сам то я могу но скорее нужен оптимальный вариант от анона. с меня как всегда
Аноним 30/06/19 Вск 21:52:52 #2 №199164139 
бамп
Аноним 30/06/19 Вск 21:54:17 #3 №199164244 
бамп
Аноним 30/06/19 Вск 21:55:26 #4 №199164311 
бамп
Аноним 30/06/19 Вск 21:56:06 #5 №199164363 
Котик, условия подробнее напиши, числа в массиве отсортированы или рандомно раскиданы?
Аноним 30/06/19 Вск 21:56:46 #6 №199164420 
>>199164363
рандомно
Аноним 30/06/19 Вск 21:56:57 #7 №199164436 
>>199164010 (OP)
Так это легко, используй метод split
Аноним 30/06/19 Вск 21:57:41 #8 №199164491 
>>199164420
Сортируешь, берешь первый и последний.
Аноним 30/06/19 Вск 21:57:47 #9 №199164496 
>>199164420
Тогда лучший complexity, что тебе светит - O(n log n).
Берешь quicksort алгоритм, сортируешь при помощи его, затем просто возвращаешь array[0], array[len(array) - 1]
Аноним 30/06/19 Вск 21:58:09 #10 №199164522 
>>199164436
сплит это делитель а я хз как там перебрать
Аноним 30/06/19 Вск 21:58:18 #11 №199164529 
>>199164010 (OP)
var array = [32,16,11,23,48,41,84,51,52]; //массив с 3000 элементов
var min = null;
var max = null;
for(var i=0; i<array.length; i++) {
\tif(min == null || min > array) {
\t\tmin = array;
\t}
\tif(min == null || max < array) {
\t\tmax = array;
\t}
}
console.log(min); //11
console.log(max); //84
Аноним 30/06/19 Вск 21:58:36 #12 №199164559 
>>199164010 (OP)
Сделай проверку на первые 30 элементов, всё равно никто дальше смотреть не станет.
Аноним 30/06/19 Вск 21:58:54 #13 №199164582 
изображение.png
>>199164529
Расподорасилоу.
Аноним 30/06/19 Вск 21:59:06 #14 №199164602 
>>199164496
Пиздец, сам с себя орнул, простым перебором выходит же O(n).
Аноним 30/06/19 Вск 22:00:16 #15 №199164708 
[Math.max(arr), Math.min(arr)]
Аноним 30/06/19 Вск 22:00:20 #16 №199164711 
>>199164010 (OP)
вручную перебери, так проще будет.
Аноним 30/06/19 Вск 22:00:20 #17 №199164712 
Я жыэс знаю поверхностно читай - нихуя не знаю, но неужели там нет функций типа min(твой_массив) и max(твой_массив). И просто берешь и пишешь в новый массив значения, которые эти две функции вернут.
Ну или руками что-то типа этого псевдокода:
max = massive(0)
min = massive(0)
for number in massive {
if number > max {
max = number
} else if number < min {
min = number
}
}
Что-то такое. Вообще это азы, так что гугли
Аноним 30/06/19 Вск 22:00:39 #18 №199164726 
>>199164582
Але, ES6 уже лет 5 как вышел.
Аноним 30/06/19 Вск 22:01:01 #19 №199164756 
>>199164496
не не сработало вроде
Аноним 30/06/19 Вск 22:01:41 #20 №199164799 
>>199164726
И что там нового? Чем плох мой способ?
Серьезно спрашиваю, без подъеба.
Аноним 30/06/19 Вск 22:02:08 #21 №199164836 
>>199164799
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/for...of
Аноним 30/06/19 Вск 22:03:04 #22 №199164896 
>>199164712
циклом слишком много элементов
Аноним 30/06/19 Вск 22:03:30 #23 №199164929 
Не ну тут линия, по другому и никак. Два сравнения на каждом шаге.
Аноним 30/06/19 Вск 22:03:40 #24 №199164941 
>>199164896
Дуралей, нельзя при рандомной сортировке элементов сделать это быстрее, чем за O(n) так что это 100% решается только перебором.
Аноним 30/06/19 Вск 22:04:26 #25 №199164992 
>>199164836
Прикольно, не знал. Типа как foreach в php. я php программист, а не js вообще, хули доебался
А что с поддержкой браузерами? Старый синтаксис то точно все поддерживают.
Аноним 30/06/19 Вск 22:05:01 #26 №199165027 
>>199164529
не, все хуйня. Давай по новой.
Аноним 30/06/19 Вск 22:06:45 #27 №199165136 
>>199164992
> я php программист
Сочувствую. А я питономакака.
>А что с поддержкой браузерами?
https://www.google.ru/search?q=es6+browser+support
[mailto:Sage] Аноним 30/06/19 Вск 22:07:56 #28 №199165209 
00znRUhgrm.png
>>199164010 (OP)
Очень похоже на задачку из егэ по информатике
Аноним 30/06/19 Вск 22:08:27 #29 №199165246 
CsEhvsE[1].jpg
>>199164529
>var
Аноним 30/06/19 Вск 22:08:47 #30 №199165270 
>>199164726
вижу выход в хранении максимального значения в бд (обосрите если что). Т.е. при внесении новой переменной сравниваем со значением текущего максимума, если новая переменная больше - заносим.
мимо гуманитарий
Аноним 30/06/19 Вск 22:08:55 #31 №199165273 
>>199165136
>Сочувствую.
Чему? php 7 крутой стал, это тебе не 4 и даже не 5 версия.
Аноним 30/06/19 Вск 22:09:12 #32 №199165288 
>>199165136
Зачем ты разговариваешь с пещерным человеком? Любая нормальная бэкенд макака хотя бы реакт знает и умеет собирать проект с помощью yarn\nmp.
Аноним 30/06/19 Вск 22:09:57 #33 №199165342 
>>199165246
А как правильно?
Аноним 30/06/19 Вск 22:10:13 #34 №199165360 
Алгоритм составь, потом уже код пиши.
Аноним 30/06/19 Вск 22:10:13 #35 №199165361 
кто нибудь может мне дать фрагмент кода? оп
Аноним 30/06/19 Вск 22:10:59 #36 №199165408 
>>199165360
админь. 2чаю адеквату.
Аноним 30/06/19 Вск 22:12:05 #37 №199165473 
>>199165361
блок-схемы на информатике в школе изучал?
Аноним 30/06/19 Вск 22:12:52 #38 №199165530 
ладно я ушел (оп)
Аноним 30/06/19 Вск 22:13:02 #39 №199165541 
>>199165342
let array = [32,16,11,23,48,41,84,51,52];
array = [Math.max(...array), Math.min(...array)]

учу экмаскрипт неделю
Аноним 30/06/19 Вск 22:13:52 #40 №199165579 
>>199165541
>учу экмаскрипт неделю
Заметно.
Аноним 30/06/19 Вск 22:15:08 #41 №199165648 
>>199165541
>...array
Что это за конструкция?
Аноним 30/06/19 Вск 22:15:20 #42 №199165663 
>>199165541
Нахуя let? Почему не const?
Аноним 30/06/19 Вск 22:15:50 #43 №199165691 
изображение.png
а может быть погромистов тред?
Аноним 30/06/19 Вск 22:16:16 #44 №199165716 
>>199165648
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
sage[mailto:sage] Аноним 30/06/19 Вск 22:19:10 #45 №199165848 
Нахуй вы пытаетесь вкатываться, если даже не можете самостоятельно найти минимальный и максимальный элемент в массиве?
Аноним 30/06/19 Вск 22:19:19 #46 №199165857 
>>199165663
Оп хочет в тот же аррей поместить, решил переписать переменную.
Аноним 30/06/19 Вск 22:20:47 #47 №199165941 
>>199165848
Так есть двач для этого и гугл, не?
Аноним 30/06/19 Вск 22:22:45 #48 №199166040 
Вы ебанутые? Какая сортировка нахуй, вы один раз совершаете проход по массиву и находите минимальный/максимальный элементы, всё. Не нужно ничего сортировать, шизики.
Аноним 30/06/19 Вск 22:23:58 #49 №199166107 
>>199164010 (OP)
как же заебали эти вкатывальщики, которые повелись на мантры js=300к
Аноним 30/06/19 Вск 22:24:28 #50 №199166134 
>>199165848
Тут не стоит вопрос о том, КАК его найти. Тут вопрос про то, каким образом поступать в случаях с большими массивами.
Аноним 30/06/19 Вск 22:25:14 #51 №199166176 
>>199164010 (OP)
>нужен код который быстро перебрал бы
логика тут у всех вариантов одинаковая будет, сколько бы мамкины погремусты-смузиеды не выебывались друг перед другом своими дохуя декларативными конструкциями у кого короче
sage[mailto:sage] Аноним 30/06/19 Вск 22:25:21 #52 №199166183 
>>199165941
Уж лучше гугл, или хотя бы головой подумать немного
sage[mailto:sage] Аноним 30/06/19 Вск 22:26:53 #53 №199166298 
>>199166134
Нет лучшего варианта, кроме перебора всех значений в рандомном массиве и желательно сделать все в одном цикле
Аноним 30/06/19 Вск 22:27:15 #54 №199166320 
>>199166134
>Тут вопрос про то, каким образом поступать в случаях с большими массивами.
Ни в коем случае не записывать их в оперативную память целиком. Всё.
Аноним 30/06/19 Вск 22:27:52 #55 №199166358 
>>199166040
Адекват в треде
Аноним 30/06/19 Вск 22:28:21 #56 №199166385 
y3frIemc.png
>>199166134
Проходишься по массиву. Всё равно быстрее чем за O(n) и два стейта ты это не сделаешь.

Можешь проходя заодно и чистить массив, потом в конце туда 2 стейта загонишь.с
Аноним 30/06/19 Вск 22:29:31 #57 №199166448 
ну по идее можно метод sort использовать, а потом взять первый и последний элемент в массиве, быстрее вроде никак, один хрен надо ведь все элементы массива сравнить друг с другом - значит и число операций не сократить никак
Аноним 30/06/19 Вск 22:30:05 #58 №199166475 
>>199166385
>Можешь
Не можешь, огромные массивы поступают как поток, а не куском в память.
>>199166448
facepalm
Аноним 30/06/19 Вск 22:31:45 #59 №199166579 
>>199166448
Ты дурачок, ты из O(n) и O(1) по памяти предлагаешь превратить в O (n log n) и O(n) по памяти.

Убей себя.
Аноним 30/06/19 Вск 22:33:24 #60 №199166673 
y3frIemc.png
>>199166475
>Не можешь, огромные массивы поступают как поток, а не куском в память.
Да хоть в реактивном флаксе через редуцирование обрабатывай из бесконечного потока.

Просто 2 стейта заводишь и сравниваешь, поиск максимума минимума на лету это блять в 7м классе изучают
Аноним 30/06/19 Вск 22:33:28 #61 №199166681 
>>199164010 (OP)
google docs делайет это за 3 сек
Аноним 30/06/19 Вск 22:35:27 #62 №199166791 
>>199166673
Спасибо, я знаю как найти минимум и максимум. Я про то чтобы на лету чистить массив. Bigdata поступает в виде readonly stream, по очевидным причинам. Либо чанками, но это другая история.
Аноним 30/06/19 Вск 22:35:38 #63 №199166804 
>>199165663
Константу ты как потом изменять собрался?
Аноним 30/06/19 Вск 22:36:00 #64 №199166826 
Test
Аноним 30/06/19 Вск 22:38:58 #65 №199167024 
Хули?
Константа МАКС = 0
Получить массив
Цикл с первого до последнего(до конца потока)
Если значение > МАКС то МАКС=значение, следующая итерация
иначе следующая итерация
Все
Аноним 30/06/19 Вск 22:39:21 #66 №199167049 
>>199166791
Объявляешь переменную. Загоняешь в нее элемент. Дальше делаешь цикл, который загоняет в переменную след элемент, если он меньше предыдущего. Таким образом в конце останется самый маленький.
Аналогично с большим.
Аноним 30/06/19 Вск 22:40:11 #67 №199167103 
в питон вкатывайся дебич
Аноним 30/06/19 Вск 22:41:03 #68 №199167156 
>>199167103
Ща бы на питоне писать фронт)
Аноним 30/06/19 Вск 22:42:45 #69 №199167276 
>>199167156
сколько платят бэкенд-кодеру на питоне и на ноджс?
Аноним 30/06/19 Вск 22:43:36 #70 №199167320 
>>199167276
30-50 деревянных
Аноним 30/06/19 Вск 22:44:27 #71 №199167369 
>>199167049
>Спасибо, я знаю как найти минимум и максимум.
Аноним 30/06/19 Вск 22:48:49 #72 №199167651 
>>199167320
Чего 30-50 рублей? В час? Пиши по нормальному!
Аноним 30/06/19 Вск 22:52:44 #73 №199167887 
>>199167651
в месяц.
В долларах ~500, если тебе проще.
задавай ответы
Аноним 30/06/19 Вск 22:54:01 #74 №199167968 
>>199167887
30 рублей в месяц? Что ты пишешь вообще? 500 далларов это 30к рублей.
Аноним 30/06/19 Вск 22:59:56 #75 №199168340 
>>199167968
т.е. ты не смог сделать логического заключения, что я лишь пропустил букву. Иди в макдональдс.
Аноним 30/06/19 Вск 23:01:04 #76 №199168424 
>>199168340
Я не люблю додумывать. Можно же сразу по нормальному написать?
Я сам бекенд кодер, только на php.
Аноним 30/06/19 Вск 23:07:55 #77 №199168868 
изображение.png
>>199168424
> Я не люблю додумывать.
> Я сам бекенд кодер

удачи. Честно, без наеба. С такой позицией нужно быть либо гением, либо долбоебом.
Аноним 30/06/19 Вск 23:08:27 #78 №199168901 
>>199164010 (OP)
var arr = [11, 23, 4324, 23,234, 2343];
var min = 0;
var max = 0;
for(var i =0; i < arr.length; i++){
if(arr > max){
max = arr;
} else if(arr < min){
min = arr;
}
i--;
}
Аноним 30/06/19 Вск 23:08:52 #79 №199168925 
>>199168901
Енжой
Аноним 30/06/19 Вск 23:10:09 #80 №199169021 
>>199168424
из-за таких как ты бэкендеров у нас в стране нихуя не работает, представляю, какой ты говнокод хуяришь
Аноним 30/06/19 Вск 23:11:19 #81 №199169089 
>>199168901
не, зашквар. Напоминаю (не ОП) 3тысячи++ элементов. Как понимаю, нужен перебор на лету
Аноним 30/06/19 Вск 23:11:21 #82 №199169090 
>>199168901
Ты - хуй, что будет если в массиве все числа больше нуля? Какой у тебя будет минимум, мм, уеба?
Аноним 30/06/19 Вск 23:12:19 #83 №199169150 
hPy0KAFb.png
>>199168901
Классный ты говнокодер, у тебя минимум 0 вышел.
Аноним 30/06/19 Вск 23:12:54 #84 №199169189 
>>199169090
>>199169150
Не только минимум, он еще и с максимум обосрался числа бывают отрицательные
Аноним 30/06/19 Вск 23:13:51 #85 №199169241 
>>199169189
проверь в консоли, все работает
Аноним 30/06/19 Вск 23:13:53 #86 №199169245 
>>199168901
Это же мой псевдокод, только под жопоскрипт! А что, у вас в языке нет ничего типа "for элемент in массив" или "foreach in массив"?
Аноним 30/06/19 Вск 23:19:44 #87 №199169643 
>>199168901


лучше так:
[code]
{
Len-3000;
for(i=0;i<=Len;i++)
arr=round();
max=min=arr[0];
for(i=1;i<=Len;i++)
{
max=(arr<max) ? max : arr;
min=(arr)>min) ? min : arr;
}
print "Max: ", max, "Min: " min;
}
[/code]
Аноним 30/06/19 Вск 23:20:09 #88 №199169665 
>>199164010 (OP)
for(let i=0; i < 1; i ++){ console.log('ОП петух'); i--;}
Аноним 30/06/19 Вск 23:21:02 #89 №199169717 
>>199164010 (OP)
Таких вариантов в инете полно готовых же.
Аноним 30/06/19 Вск 23:21:36 #90 №199169754 
>>199167276
Хуи за щеку таким кидают.
Аноним 30/06/19 Вск 23:21:48 #91 №199169773 
>>199169241
[ -1; -3; -5 ]
Какой будет максимум?
Аноним 30/06/19 Вск 23:23:04 #92 №199169863 
>>199169773
бля ты не особо умный, да?
Аноним 30/06/19 Вск 23:24:47 #93 №199169963 
>>199169863
> обосрался
> это не от меня воняет а от тебя!
Аноним 30/06/19 Вск 23:26:29 #94 №199170059 
>>199169963
елси ты шаришь, то скажи мне, что произойдет при запуске данного цикла?
Аноним 30/06/19 Вск 23:27:37 #95 №199170143 
>>199170059
Так выше расписали же что говнокод.
Плюс там еще индексации массива внутри цикла нет, лол.
Даже примитивная система типов не пропустила бы этот баг.
Аноним 30/06/19 Вск 23:28:32 #96 №199170199 
>>199170143
бля, ебать вы тупорылые, нажми ctrl+shif+i, скопируй код в консоль и запусти
Аноним 30/06/19 Вск 23:28:43 #97 №199170216 
>>199170059
>>199170143
Там еще и декремент индекса перед инкрементом, ну что за говно.
Я бы послал нахуй если бы у меня на работе такое написали.
Аноним 30/06/19 Вск 23:28:49 #98 №199170226 
>>199170059
чернобль в очеред6ной раз вз0орвется, очевидно жеЁ
Аноним 30/06/19 Вск 23:29:04 #99 №199170237 
>>199170199
Вот еще нехватало всякую хуету запускать.
Аноним 30/06/19 Вск 23:30:12 #100 №199170319 
>>199170237
>>199170216
>>199170216
ко ко ко
Аноним 30/06/19 Вск 23:33:00 #101 №199170466 

Ведь как-то раньше можно было код постить. ОП, инициализируй свои минимаксы первым элементом массива, съэкономишь много времени при отладке

{
Len=3000;
for(j=0;j<=Len;j++)
arr=round();
max=min=arr[0];
for(i=1;i<=Len;i++)
{
max=(arr[j]<max) ? max : arr[j];
min=(arr[j]>min) ? min : arr[j];
}
print "Max: ", max, "Min: " min;
}
Аноним 30/06/19 Вск 23:34:48 #102 №199170582 
>>199167369
А как хуй сосать, знаешь, манякодер?
Аноним 30/06/19 Вск 23:35:14 #103 №199170604 
>>199170466
Ну окей, продолжаем обсирать говнокодеров ИТТ.
Нахуя тебе два вложенных цикла? Это делается в один проход.
Аноним 30/06/19 Вск 23:35:47 #104 №199170631 
УУУ СУКА БЛЯ а еще ноют что вкатится не могут.
Аноним 30/06/19 Вск 23:35:49 #105 №199170633 
>>199165691
>а может быть погромистов тред?


Кстати да, как сравнить два графа на общность среуктуры топологии, расположение элементо и длины рёбер не важны
Аноним 30/06/19 Вск 23:36:36 #106 №199170679 
>>199170633
Выделить структуру из каждого графа и сравнить, не?
Аноним 30/06/19 Вск 23:38:25 #107 №199170792 
>>199170604


Первый цикл у меня просто дя заполения рандомного массива, для чистоты эксперемента. А так конечно можно одним циклом обойтись и дже без массива, лол
Аноним 30/06/19 Вск 23:41:11 #108 №199170954 
>>199166040
Двачую, решается за линейное время, с константными затратами на память
Аноним 30/06/19 Вск 23:42:36 #109 №199171029 
>>199170679

>Выделить структуру из каждого графа и сравнить

На словах я тоже Лев Толстой. Как сравнивать топологию если сами элементы не важны? Я могу сранить связи между идентичными узлами, ОК, Но если эти узлы обезличить - меняем рандомно конечные узлы местами? Как? Я не математик, обычный инженегр перешедший в биоинформатику.
Аноним 30/06/19 Вск 23:43:34 #110 №199171085 
>>199164010 (OP)
Ребятки, учим матчасть.

let arr = [35,2,65,7,8,9,12,121,33,99];
let min = Math.min.apply(null, arr);
let max = Math.max.apply(null, arr);
console.log("Max value is:", max, "\nMin value is:", min);
Аноним 30/06/19 Вск 23:43:53 #111 №199171106 
>>199166040
хз, я бы вывел в отдельные переменные мин и макс.
Аноним 30/06/19 Вск 23:44:12 #112 №199171131 
>>199171029
Описываешь структуру как дерево у которого нет элементов.
Пишешь функцию конвертации графа в нормализованное представление этой структуры.
Рекурсивно сравниваешь две структуры.
Что именно вызывает трудности?
Аноним 30/06/19 Вск 23:45:50 #113 №199171229 
>>199171085
Я тут задал массив, но в твоем варианте, ОП, ты просто вместо arr укажи переменную своего массива и будет тебе счастье.
Аноним 30/06/19 Вск 23:46:59 #114 №199171303 
15395378813820.jpg
>>199164010 (OP)
std::minmax
Аноним 30/06/19 Вск 23:47:57 #115 №199171365 
>>199171131


О, понятно в какую сторону двигаться. Просто не пользовался деревьями с момента как учил С/С++ и структуры данных.
Аноним 30/06/19 Вск 23:48:30 #116 №199171396 DELETED
Зaхoдим нa нoвyю cвoбoднyю бopдy без мoчи и без Уcмaнoвa!
Аноним 30/06/19 Вск 23:48:52 #117 №199171422 
>>199165541
Все ок, только нахрена ты переписываешь переменную, непонятно.
Аноним 30/06/19 Вск 23:49:25 #118 №199171460 
15395378813820.jpg
>>199164529
>>199164712
>>199168901
>>199170466
Залупа. На плюсах в одну строку делается std::minmax. Эх, макаки.
Аноним 30/06/19 Вск 23:49:31 #119 №199171464 
>>199165648
Это spread оператор
Аноним 30/06/19 Вск 23:50:36 #120 №199171536 
image.png
>>199171460
Что JS что плюсы.
Аноним 30/06/19 Вск 23:50:47 #121 №199171550 
>>199170633
Вроде как определение изоморфизма графов это NP
Аноним 30/06/19 Вск 23:58:47 #122 №199171990 
>>199171085
Зачем апплаить когда можно разобрать массив?
Аноним 30/06/19 Вск 23:59:47 #123 №199172031 
>>199164010 (OP)
спешите видеть опа долбоеба, который не учил базовые алгоритмы и структуры данных.
Классика.
Аноним 01/07/19 Пнд 00:00:38 #124 №199172069 
>>199164010 (OP)
function js = () => puk; srenk;
Аноним 01/07/19 Пнд 00:00:54 #125 №199172083 
>>199171460
std::minmax_element так-то
Аноним 01/07/19 Пнд 00:01:00 #126 №199172087 
hanekawa02.png
>>199164010 (OP)
не слушай всех этих кукаретиков, вот тебе самое оптимальное решение

const random = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

const maximum = array => {
__while(true) {
____const max = array[random(0, array.length - 1)];

____let found = false;
____for(let i = 0; i < array.length; i++) {
______if(array > max) {
________found = true;
________break;
______}
____}

____if(found) {
______continue;
____}

____return max;
__}
};

const minimum = array => {
__while(true) {
____const min = array[random(0, array.length - 1)];

____let found = false;
____for(let i = 0; i < array.length; i++) {
______if(array < min) {
________found = true;
________break;
______}
____}

____if(found) {
______continue;
____}

____return min;
__}
};

const maximumMinimum = array => [maximum(array), minimum(array)];
Аноним 01/07/19 Пнд 00:02:08 #127 №199172147 
>>199172069
ты как раз пукнул и сренькул лол, знаток блядь
Аноним 01/07/19 Пнд 00:03:25 #128 №199172206 
IMG20171224205825.jpg
>>199171550
>изоморфизма графов это NP

>Графы G и H являются изоморфными, если путём перестановки строк и столбцов матрицы смежности графа G удается получить матрицу смежности графа H. Однако перебор всех возможных перестановок характеризуется вычислительной сложностью O ( N ! ).


И что мне с этим делать?
Аноним 01/07/19 Пнд 00:04:48 #129 №199172261 
[code]
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
IntSummaryStatistics intSummaryStatistics = Arrays.stream(arr).summaryStatistics();
arr = new int[]{intSummaryStatistics.getMax(), intSummaryStatistics.getMin()};
System.out.println(Arrays.toString(arr));
}
[/code]
Вот вам на джаве.

мимо синьор 300к/нс
Аноним 01/07/19 Пнд 00:04:59 #130 №199172273 
>>199172147
js макака закукарекала заместо авроры
Аноним 01/07/19 Пнд 00:05:50 #131 №199172311 
1559484711141.png
>>199172261
Пиздеж, ни одной фабрики.
Аноним 01/07/19 Пнд 00:08:21 #132 №199172436 
>>199165270
Чё бля?
Аноним 01/07/19 Пнд 00:09:50 #133 №199172502 
>>199165288
Но реакт же фронт...
Аноним 01/07/19 Пнд 00:11:12 #134 №199172566 
>>199172311
@SpringBootApplication
public class SpringBootConsoleApplication
\t\timplements CommandLineRunner {
\t
\tpublic static void main(String[] args) {
\t\tSpringApplication.run(SpringBootConsoleApplication.class, args);
\t}

\t@Override
\tpublic void run(String... args) {
\t\tint[] arr = {1, 2, 3, 4, 5, 6};
\t\tIntSummaryStatistics intSummaryStatistics = getIntSummaryStatistics(arr);
\t\tarr = new int[]{intSummaryStatistics.getMax(), intSummaryStatistics.getMin()};
\t\tSystem.out.println(Arrays.toString(arr));
\t}
}
Аноним 01/07/19 Пнд 00:11:47 #135 №199172587 
Блять думал вакаба хоть табы нормально отобьет
Аноним 01/07/19 Пнд 00:12:44 #136 №199172615 
>>199165541
Два раза массив гоняешь

const getMinAndMax = (arr) => {
arr.reduce((accumulator, currentValue) => {
return [Math.min(accumulator, currentValue), Math.max(accumulator, currentValue)]
}, [arr[0], arr[0]]);
};
Аноним 01/07/19 Пнд 00:13:46 #137 №199172661 
>>199164010 (OP)
Быстрее, чем за O(n) не сделать же?
Аноним 01/07/19 Пнд 00:15:11 #138 №199172730 
>>199172436
а почему нет?
Аноним 01/07/19 Пнд 00:17:06 #139 №199172834 
>>199172615
return забыл, но разберешься
Аноним 01/07/19 Пнд 00:17:35 #140 №199172863 
>>199172661


Если массив отсортирован или представлен ввиде дерева то О(2)+Const и О(log(n)) соотвественно
Аноним 01/07/19 Пнд 00:20:13 #141 №199172981 
>>199172587


Раньше была возможность но Абу всё ушатал
Аноним 01/07/19 Пнд 00:20:17 #142 №199172985 
>>199165270
Работает для одной последовательности, да и невыгодно делать это, слишком много записи для одной хуйни
Аноним 01/07/19 Пнд 00:20:27 #143 №199172995 
>>199172863
Лол, ну если он отсортирован, то и задачи нет, а если деревом, то это и не массив.
Аноним 01/07/19 Пнд 00:20:39 #144 №199173012 
>>199172730
Причём тут ес6 и зачем ты повторил код выше?
Аноним 01/07/19 Пнд 00:21:01 #145 №199173033 
>>199164010 (OP)
var arr = [...];

var mix = arr[0];
var max = arr[0];

for (var i = arr.length; i--; ) {
var value = arr;
if (value < min) min = value;
if (value > max) max = value;
};

console.log(min, max);
Аноним 01/07/19 Пнд 00:21:09 #146 №199173037 
>>199164010 (OP)
bump
Аноним 01/07/19 Пнд 00:22:44 #147 №199173120 
>>199173033
У тебя код не работает.
Аноним 01/07/19 Пнд 00:22:56 #148 №199173130 
>>199172995

Ну тогда ой О(N)
Аноним 01/07/19 Пнд 00:24:18 #149 №199173182 
>>199173012
>Причём тут ес6 и зачем ты повторил код выше?
это ты им рассказывай. Я тот, который хранить мин и макс в бд предлагал.
Аноним 01/07/19 Пнд 00:24:23 #150 №199173189 
>>199173120
А ты вместо двоеточий вставь свои 3к элементов.
Аноним 01/07/19 Пнд 00:24:54 #151 №199173220 
>>199164010 (OP)
Не прокатит, это чисто институтская задачка, без практической пользы. Ссу тебе в ебальник, сам учись, это ничего сложного.
Аноним 01/07/19 Пнд 00:25:38 #152 №199173262 
>>199173033
Какой чудовищный говнокод. Ты сишник что ли бывший?
Аноним 01/07/19 Пнд 00:25:41 #153 №199173266 
>>199173189
Вставил. Всё равно 0 выводит.
Аноним 01/07/19 Пнд 00:26:45 #154 №199173322 
>>199164010 (OP)
Первый проход: находишь максимум и минимум.
Второй проход: выкидываешь элементы кроме максимума и минимума.
Аноним 01/07/19 Пнд 00:26:45 #155 №199173324 
array.min() //самое маленькое
array.max() //самое большое

Дегенераты блядь.
Аноним 01/07/19 Пнд 00:27:06 #156 №199173346 
>>199173322
Императивщики сосут
Аноним 01/07/19 Пнд 00:27:34 #157 №199173363 
>>199173322
А третий?
Аноним 01/07/19 Пнд 00:27:59 #158 №199173388 
>>199173266
смирись, погромизм не твоё.
Аноним 01/07/19 Пнд 00:28:11 #159 №199173397 
>>199164010 (OP)
Math.min/max.apply(null, array)

/thread
Аноним 01/07/19 Пнд 00:29:12 #160 №199173451 
>>199173266
Ну наебался в

>var mix = arr[0];

и

>var value = arr;

С кем не бывает. Это ж не ебучая консоль.
Аноним 01/07/19 Пнд 00:30:05 #161 №199173496 
>>199173262
Всю жизь был js богом. А теперь пруфай пиздатым кодом.
Аноним 01/07/19 Пнд 00:30:23 #162 №199173516 
>>199173324
Самое нормальное решение. Нахуя писать то, что уже существует.
Аноним 01/07/19 Пнд 00:31:26 #163 №199173556 
>>199173346
Array.prototype.max = function() {
return Math.max.apply(null, this);
};

Array.prototype.min = function() {
return Math.min.apply(null, this);
};

let a = [3000,0,100000,300]
console.log(a.min())
console.log(a.max())

Вот сразу видно кто учился в русских инстиках. Все, кто пытались императивку через цикл со счетчиком нарядить в духе паскала отправляются вон из профессии. Руснявый кодер = плохой кодер.
Аноним 01/07/19 Пнд 00:31:28 #164 №199173558 
>>199173496
Уже.
>>199164836
Аноним 01/07/19 Пнд 00:31:52 #165 №199173577 
>>199173266
>>199173451
А это еще и не я наебался, а двощ половину съедает. В пизду вас, без перебора тут никак.
Аноним 01/07/19 Пнд 00:32:14 #166 №199173594 
>>199173577
>>199173556
Вот. Без перебора.
Аноним 01/07/19 Пнд 00:32:41 #167 №199173617 
>>199173594
Лол.
Аноним 01/07/19 Пнд 00:33:01 #168 №199173633 
>>199173220
>без практической пользы


Ну почему же, я входной массив о котором ничего не знаю заранее определяю мин/макс, далее задаю разрешение и заношу весь массив в таблицу, за время N создаётся гистограма, очень полезная хуета созданная на коленке.
Аноним 01/07/19 Пнд 00:33:41 #169 №199173667 
>>199173324
для самых отмороженных повторяю, юзай мускуль. у тебя, к примеру, 60к++ значений. Найди мне мин. Перебор каждый раз делать? - это полный зашквар. Объясните, если туплю.
Аноним 01/07/19 Пнд 00:35:00 #170 №199173719 
>>199173633
в реальности ты будешь в любом интерпретируемом языке делать стандартный встроенный метод array.sort() и получать потом 1 и -1 элемент. Благо такой метод везде есть, и это всегда будет быстрее, чем писать велосипед, который будет интерпретироваться непонятно во что.
Аноним 01/07/19 Пнд 00:35:05 #171 №199173726 
>>199173672
пошел нахуц, говноед.
Аноним 01/07/19 Пнд 00:36:02 #172 №199173784 
>>199173594
>Вот. Без перебора.

скрытые циклы, нет не слышали
Аноним 01/07/19 Пнд 00:36:32 #173 №199173804 
>>199173558
Так ты дебил, есть math min/max, а твое питоновское говно не поддерживается половиной старых проектов, где бы хуйца пососал со своем Es6.
Аноним 01/07/19 Пнд 00:36:46 #174 №199173818 
78365157540120.jpg
Заxодим на новую свободную боpду без мочи и без Усманова!
Аноним 01/07/19 Пнд 00:37:11 #175 №199173837 
>>199173667
для самых отмороженных ЖС поддерживает свой небольшой sqlite уровня браузера.
Аноним 01/07/19 Пнд 00:37:41 #176 №199173855 
>>199173804
Что ты блядь несёшь?
Аноним 01/07/19 Пнд 00:38:20 #177 №199173885 
>>199164010 (OP)
std::minmax_element(array.begin(), array.end())
Как это в ваших парашах делается в душе не ебу.
Аноним 01/07/19 Пнд 00:38:52 #178 №199173907 
>>199173556
>Вот сразу видно кто учился в русских инстиках.
>>199173594
>Вот. Без перебора.
Лул, а оно там магией по массиву перебирается, да?

Пиздец вы дауны, которые не могут без готовеньких функций и jquery - типикл мереканцы, на все готовенькое.
Аноним 01/07/19 Пнд 00:39:16 #179 №199173926 
>>199173784
Про скрытые не слышали, про неявные слышали. Да и хуй на них, неявные циклы почти всегда хорошо оптимизируются при интерпретации. Мерить надо, конечно, но мой скромный опыт намекает мне, что мы тольковыиграли по времени.
Аноним 01/07/19 Пнд 00:40:38 #180 №199173986 
>>199173907
Русская инстопараша закукарекала. Зачеточку не урони. Ну не получится эта императивная хуита с нормальной скоростью работы. Тогда уж хотя бы делал бы for each массиву, но по-бабушкински через счетчики в 2к19 даже не смешно, в джаваскрипте. Приехали.
Аноним 01/07/19 Пнд 00:40:44 #181 №199173990 
>>199173855
Как с вами даунами-джуниорами тяжело. Говорю, говно твое в es6 из питоши принесли и воспользоваться ты им сможешь только в своих провальных новеньких стартапах, т.к. в 90% реальных работ es6 ты не увидишь.
Аноним 01/07/19 Пнд 00:41:42 #182 №199174040 
>>199173837
в общем хз, логику в студию. Хули спорить о том , чего нет.
Аноним 01/07/19 Пнд 00:43:13 #183 №199174099 
>>199173986
>Въебал в прототип всех массивов левой хуйни.
>Советует юзать медленный фор ич для массивов.
>Что-то кукарекает про код.

Ты даун, смирись. В твоих курсах с тытруба, криво переведенных, преподавали по ходу такие же дауны, которым нужен красивенький код, а не рабочий.

Держу пари, что у тебя нет нормальной работы.
Аноним 01/07/19 Пнд 00:43:16 #184 №199174102 
>>199173986
Почему? В жс императивный код работает дольше? Пруфы?
Аноним 01/07/19 Пнд 00:43:56 #185 №199174132 
>>199173926
>тольковыиграли по времени

при написании, если сделал и забыл->получил зарпалту то не спорю, если сам разрабатываешь проект то хз, лично я динозавр по нынешним меркам, начинал писать когда даже про C не очень-то и слышали, писали на всяких PL-1/2 или Алгол-Фротран в 1984
Аноним 01/07/19 Пнд 00:45:03 #186 №199174168 
>>199164708
[NaN, NaN]
Надо [Math.max(...arr), Math.min(...arr)]
Аноним 01/07/19 Пнд 00:45:17 #187 №199174182 
>>199173990
что ты блядь несёшь...
Аноним 01/07/19 Пнд 00:45:54 #188 №199174202 
>>199174102
Он даун, не обращай внимания. Если ты ему расскажешь, что его Math.max - это тот же обход for, он ахуеет.
Аноним 01/07/19 Пнд 00:45:55 #189 №199174204 
>>199174132
Ну ты реальный динозавр, дядька. Моя первая программа на QBASIC была, я себя динозавром считаю. А тут прям совсем пиздец, меня в 1984 в проекте не было. Тебе простительно, из уважения к сединам так писать.
Аноним 01/07/19 Пнд 00:46:54 #190 №199174240 
>>199174182
Говорю, что мамка твоя шлюха не должна была рожать юродивого.
Аноним 01/07/19 Пнд 00:47:59 #191 №199174277 
ЛУЧШЕЕ РЕШЕНИЕ ИТТ
e=[-1,0,1]
e=e.reduce(([a,b],c,d,e)=>[Math.max(a,c),Math.min(b,c)],[e[0],e[0]])

мимо джс сеньер транспилирую код в уме
Аноним 01/07/19 Пнд 00:48:34 #192 №199174299 
>>199174202
Нет, не охуею. А вот ты охуеешь, если увидишь во что она развернется, если осилишь с отладкой разобраться. Разница в том, что math.max разверентся гарантированно одним и тем же способом, а что там стрельнет в голову сделать с циклами ведает только контекст.
Аноним 01/07/19 Пнд 00:49:28 #193 №199174343 
>>199174277
нормальное решение, через reduce, классика. Русня так не умеет, ты откуда?
Аноним 01/07/19 Пнд 00:50:16 #194 №199174380 
15430686268850.jpg
>>199164010 (OP)
>Сам то я могу но
Моя любимая часть.
Аноним 01/07/19 Пнд 00:50:23 #195 №199174383 
>>199173556
Да бля манкипатчинг это конечно для сверхразумов
Аноним 01/07/19 Пнд 00:51:12 #196 №199174413 
>>199174383
не нравится трогать стандартные прототипы, отнаследуй и сделай свой, особый уличный тип массива. Кто тебе мешает?
Аноним 01/07/19 Пнд 00:51:34 #197 №199174430 
>>199174343
Из Хабаровска, ярусский!
Аноним 01/07/19 Пнд 00:52:40 #198 №199174479 
изображение.png
напоминаю, оп-говноед пришел с проблемой, которую не смог объяснить. Много нюансов в вопросе. Канеш можно min-max заюзать, но это зашквар полный. Была бы логика, был бы ответ
Аноним 01/07/19 Пнд 00:53:11 #199 №199174497 
>>199174413
Блядь щас бы отнаследовать какой нибудь хуйни куда нибудь. Нет чтоб писать нормальные чистые функции как белый человек
Аноним 01/07/19 Пнд 00:53:18 #200 №199174501 
>>199174102
В ЖС императивный код может работать дольше. Просто потому что стандартные функции ускоряют, прекомпилируя их, встраивая куски кода на C и т.д. Я не удивлюсь, если стандартные методы выполняются вообще внешней библиотекой, и реального js-кода там не интерпретируется вообще. Но это не точно, я по пайтону больше угараю.
Аноним 01/07/19 Пнд 00:53:33 #201 №199174512 
>>199174277
Синёры так уебанско переменные не называют
sage[mailto:sage] Аноним 01/07/19 Пнд 00:54:13 #202 №199174538 
пошел на хуй со своим программированием
Аноним 01/07/19 Пнд 00:55:09 #203 №199174586 
>>199174501
Так можно всё на рекурсиях и тд писать, это же тоже будет не из стандартной библиотеки код, тоже будет дольше работать. Ты имел ввиду не циклы, наверное, а что лучше пользоваться стандартными средствами.
Аноним 01/07/19 Пнд 00:55:53 #204 №199174617 
>>199174512
Я его затранспилировал заминимизировал в уме, те не сечешь
Аноним 01/07/19 Пнд 00:56:45 #205 №199174653 
>>199173322
На самом деле ты облажался - второй проход не нужен.
Аноним 01/07/19 Пнд 00:58:28 #206 №199174734 
>>199174586
Хвостовая рекурсия либо оптимизируется (разворачивается в обычный цикл), либо будет дольше. Речь шла ведь о конкретном случае. Спор о чем, будет быстрее написать на циклах или позвать стандартные паттерновые методы. Для интерпретируемых языков однозначно стоит выбирать второе.

А вообще, в компилируемых языках, явные циклы конечно ВСЕГДА быстрее чем любые способы их описать косвенно. Над этим и издеваюсь, что быдлятина из сей понабежала, и начала нас учить как надо, пользуясь личным опытом из другой оперы.
Аноним 01/07/19 Пнд 01:00:13 #207 №199174825 
>>199174734
>удет быстрее написать на циклах или позвать стандартные паттерновые методы.
Ну да, это понятно.
>быдлятина из сей понабежала
Быдлятина потому что си или потому что советует в том языке, в котором не разбирается?
Аноним 01/07/19 Пнд 01:00:23 #208 №199174833 
изображение.png
D = [i for i in range(2000)]
num_min, num_max = 10000, 0
for i in D:
if i < num_min:
num_min = i
elif i > num_max:
num_max = i

print('min: ' + str(num_min) + '\n' + 'max: ' + str(num_max))
Аноним 01/07/19 Пнд 01:00:50 #209 №199174850 
>>199174586
Я тебе больше скажу, мы позвали именно модуль math, потому что все скриптовые языки числодробилку люто биндят с голым C и оптимизируют до предела.
Аноним 01/07/19 Пнд 01:01:19 #210 №199174868 
>>199174833
https://pastebin.com/wgA2QKqU
Аноним 01/07/19 Пнд 01:02:34 #211 №199174927 
>>199174825
>Быдлятина потому что си или потому что советует в том языке, в котором не разбирается?
Второе, конечно. Сами по себе то кому си навредили? По-моему, сишников никто не хейтит, ядро ОС пока на джаваскрипте писать не научились.
Аноним 01/07/19 Пнд 01:03:35 #212 №199174969 
>>199174833
>>199174868

# Добавь свои 2к чисел списком вместо генератора
D = [i for i in range(2000)]
print('min:', str(min(D)) + '\n' + 'max:', str(max(D)))
Аноним 01/07/19 Пнд 01:04:02 #213 №199174992 
>>199174927
Ну мало ли, всякие неадекватные фанбои жса есть.
>>199174850
Ну да, это понятно, я просто думал, что жс реально как-то рекурсию быстрее, чем цикл делает, интересно стало, а оказалось, что тут не про то речь, а про использование стандартных методов.
Аноним 01/07/19 Пнд 01:04:26 #214 №199175014 
>>199174833
Найс конечно дурачки завязывающиеся на каких-то константных значениях num_min num_max инишиал стейт.

А ты думал что будет когда ты подашь пустой массив? Клоун. Перебать бы тебе по голове дайв инто питон, и послать алгоритмы учить.
Аноним 01/07/19 Пнд 01:07:00 #215 №199175112 
>>199175014
Dive into python на инглише написан, а я в него не разумею пока. Только Лутца читал.

Можешь указать на ошибки и подробное объяснение последствий?

ну называю я переменные num_min и num_max - проблема в том что они глобальные, или как?
Аноним 01/07/19 Пнд 01:08:41 #216 №199175188 
>>199175112
Во первых, ты должен инициализировать макс и мин первым элементом массива.

Заодно можешь обдумать контракт при пустом массиве, можно выкидывать исключение, или ноль и ноль. Блять ты тупой или как, мне что может веслать за тебя?

Аноним 01/07/19 Пнд 01:09:15 #217 №199175215 
>>199175014
>когда ты подашь пустой массив?

Помню как первый раз охуел при дебагинге в вижуастудио загянув в неинициализованный массив, не помню голый С или С++
Аноним 01/07/19 Пнд 01:16:36 #218 №199175505 
>>199173667
Хз что за ересь ты предлагаешь, при чем тут бд вообще, или ты думашь в бд как-то по другому без индекса искаться будет?
Аноним 01/07/19 Пнд 01:18:44 #219 №199175591 
>>199173556
https://github.com/v8/v8/blob/cd81dd6d740ff82a1abbc68615e8769bd467f91e/src/js/math.js#L93
Но тебе же, долбоёбу, лень читать сырцы, да?
Аноним 01/07/19 Пнд 01:18:46 #220 №199175592 
>>199173667
Ну тебе физически придется делать перебор хотя бы один раз, потом ты можешь закешировать число, и при добавлении новых значений обновлять.
Аноним 01/07/19 Пнд 01:18:47 #221 №199175594 
>>199175188
В ТЗ не было речи об обработке исключения в виде пустого массива.
ТЗ:
>нужен код
>быстрый перебор числового массива из 3000 элементов
>оставить 2 элемента: самый большой и самый маленький.

Ты меня обвиняешь в тупизне, а сам предлагаешь решать левую задачу? Он тебе черным по белому написал - массив из 3000 элементов. Окей, работаем с ним. А обработку пустого массива можно прогнать через дополнительное ветвление, и все - это вообще не проблема.
Аноним 01/07/19 Пнд 01:29:57 #222 №199176015 
>>199174299
>а что там стрельнет в голову сделать с циклами ведает только контекст.
Пидорах, у тебя бочок потек, ты совсем не понял со своим пидорахинским, что тебе на твоей лгбтшной курсере рассказали.
Аноним 01/07/19 Пнд 01:32:19 #223 №199176107 
>>199169665
Ты только что while
Аноним 01/07/19 Пнд 01:37:51 #224 №199176331 
>>199176107
Цикл for головного мозга в треде прогрессировал.
Аноним 01/07/19 Пнд 01:38:40 #225 №199176366 
>>199176015
пидараха не горит? Корочку в туалете повесь
Аноним 01/07/19 Пнд 01:38:50 #226 №199176374 
>>199164010 (OP)
x = min(array)
y = min(a for a in array if a != max)
Я хз как это работает в джс, но в путоне это будет иметь линейную сложность. Попробуй отсортировать массив и отрезать нужные элементы.
sage[mailto:sage] Аноним 01/07/19 Пнд 01:43:19 #227 №199176558 
>>199168424
> бекенд кодер
> php
Ухх, ядрёно.
Аноним 01/07/19 Пнд 01:44:58 #228 №199176609 
>>199172311
Это что за пиздец? Java?
Аноним 01/07/19 Пнд 01:45:50 #229 №199176643 
>>199176609
В любой сложной системе будет такой коллстек.
Аноним 01/07/19 Пнд 01:47:02 #230 №199176696 
>>199176643
Даже, если мы используем микросервисную архитектуру? :)
Аноним 01/07/19 Пнд 01:47:29 #231 №199176709 
>>199176366
Как там в мире рандомных циклов for, зависящих от окружения? Уже подтерся?
Аноним 01/07/19 Пнд 01:48:11 #232 №199176734 
>>199176696
Там будет просто лапша неизвестно чего.
Аноним 01/07/19 Пнд 01:49:24 #233 №199176801 
>>199176734
Мне кажется ты долбоёб (:
Аноним 01/07/19 Пнд 01:54:42 #234 №199177001 
>>199176015
Не городить алгоритмов на ровном месте - признак хорошего программиста. Это улучшает понимание работы программы другими программистами или самим собой через время.
Любой ЯП позволяет делать императивно, давая низкоуровневые функции в руки разрабочику, но оно там для описания бизнес-логики нужно. Реализовывать существующие функции - признак пионера.
Аноним 01/07/19 Пнд 02:01:07 #235 №199177199 
>>199177001
Ебашить в прототип всякое говно это конечно признак мастера. Я че-т не заметил, чтобы ты это говно сделал неперечислимым хотя бы. Я тебе говорю, у тебя никогда не было нормальной работы, потому что ты даже не в состоянии понять, что тебе в поверхностных видосиках лгбтшной курсеры рассказывают под криво наваленным переводом таких же зумерков.
Аноним 01/07/19 Пнд 02:03:17 #236 №199177260 
 mov rax, (1-3000)4
.loop:
 mov ecx, dword ptr [rax + array+(3000
4)]
 cmp dword ptr [rip + array], ecx
 jge .skip1
 mov dword ptr [rip + array], ecx
.skip1:
 mov ecx, dword ptr [rip + array]
 cmp ecx, dword ptr [rax + array+(30004)]
 jle .skip2
 mov dword ptr [rax + array+(3000
4)], ecx
.skip2:
 add rax, 4
 jne .loop
ret
array:
 .long 32, 35...
Проверять впадлу
Аноним 01/07/19 Пнд 02:03:35 #237 №199177270 
>>199177199
Я вообще тут мимо и не при мопеде.
Аноним 01/07/19 Пнд 02:04:50 #238 №199177316 
>>199177260
Ой блядь абу иди нахуй, спасибо

 mov rax, (1-3000)✶4
.loop:
 mov ecx, dword ptr [rax + array+(3000✶4)]
 cmp dword ptr [rip + array], ecx
 jge .skip1
 mov dword ptr [rip + array], ecx
.skip1:
 mov ecx, dword ptr [rip + array]
 cmp ecx, dword ptr [rax + array+(3000✶4)]
 jle .skip2
 mov dword ptr [rax + array+(3000✶4)], ecx
.skip2:
 add rax, 4
 jne .loop
Аноним 01/07/19 Пнд 02:05:33 #239 №199177339 
Посоветуйте, кстати, годный учебник
А то те уроки, что я находил, были по старой версии.
Аноним 01/07/19 Пнд 02:10:56 #240 №199177508 
>>199177270
Тогда и не лезь, дебил, убьет.
Аноним 01/07/19 Пнд 02:11:43 #241 №199177531 
>>199177339
Читай сайт мозилы, учебники устаревают быстрее, чем выходят в печать, а уж тем более переводятся.
Аноним 01/07/19 Пнд 02:12:49 #242 №199177563 
Интересно, а можно запараллелить поиск max, min? Наверное если хитро бить массив на диапазоны то какой нибудь sse ебово разгонится.
Аноним 01/07/19 Пнд 02:34:55 #243 №199178200 
>>199177563
>если хитро бить массив
Нафига хитро? QuickSort обычный пойдёт.
Аноним 01/07/19 Пнд 04:42:51 #244 №199180774 
>>199164756
Что не сработало, ебалн, ты отсортировал массив?
sage[mailto:sage] Аноним 01/07/19 Пнд 05:04:03 #245 №199181047 
>>199164529
>>199164582
Ебаная ты вебмакака блять

var min = 0, max = 0;
for(var i = 0; i < array.length; i++) {
if(array[min] > array) min = i;
if(array[max] < array) max = i;
}

console.log(array[min]);
console.log(array[max]);
sage[mailto:sage] Аноним 01/07/19 Пнд 05:36:06 #246 №199181462 
>>199164010 (OP)
Какая-то ты хуёвая самоучка, если не можешь самонаучиться такой элементарной хуйне.
Аноним 01/07/19 Пнд 06:46:33 #247 №199182450 
>>199172261
Здравствуйте, каллега!

Мимо джава помидор 228к/нс
Аноним 01/07/19 Пнд 06:56:56 #248 №199182614 
image.png
>>199181047
Чет твой код так себе.
Аноним 01/07/19 Пнд 08:07:44 #249 №199184078 
>>199181047
>Ебаная ты вебмакака блять
>скидывает говнокод уровня вебмакаки
sage[mailto:sage] Аноним 01/07/19 Пнд 08:11:04 #250 №199184142 
>>199182614
Ебаный ты дегенерат, блять. Неужели не понятно, что надо в скобках if к array добавить i в квадратных скобочках, т.к. его макакба сожрала? JS-макаки все такие тупые или только ты?
Аноним 01/07/19 Пнд 08:12:47 #251 №199184189 
>>199184142
Хуя маневры. Ты во всем обосрался.
sage[mailto:sage] Аноним 01/07/19 Пнд 08:16:50 #252 №199184275 
>>199184189
Хуйло, иди бенчмарк прогони, посмотри, чей код быстрее. В нормальных языках твои макакские высеры не компилировало бы
Аноним 01/07/19 Пнд 08:18:50 #253 №199184326 
console.log([].push(arr.reduce((a, b) => Math.max(a, b))).push(arr.reduce((a, b) => Math.min(a, b))));

мимовкатывальщик

если нужен массив то
const res = []
res.push(arr.reduce((a, b) => Math.max(a, b)));
res.push(arr.reduce((a, b) => Math.min(a, b)));
console.log(res);
Аноним 01/07/19 Пнд 08:20:37 #254 №199184363 
>>199184326
Ебать обсёр, за два прохода тебя любой джуниор обоссыт.
Аноним 01/07/19 Пнд 08:20:57 #255 №199184371 
тьфу первая строчка неверная епт, не сработает

console.log(arr.reduce((a, b) => Math.max(a, b)), arr.reduce((a, b) => Math.min(a, b)));
Аноним 01/07/19 Пнд 08:22:49 #256 №199184410 
>>199184326
Ору с того как долбоебы пытаются сделать свой говнокод красивше и моднее, но по факту превращают его в нечитабельное дерьмище, к тому же еще и логика за этим дерьмищем неоптимальная.
sage[mailto:sage] Аноним 01/07/19 Пнд 08:25:05 #257 №199184457 
>>199184410
Напиши оптимальней этого >>199181047
Там можно разве что for на do-while поменять (т.к. у вас, макак, нету do-until)
Аноним 01/07/19 Пнд 08:25:22 #258 №199184466 
За 300 постов в треде только один >>199181047 адекватный ответ, и тот с некоторыми ошибками. Зато у всех зп 300к хули

Аноним 01/07/19 Пнд 08:27:19 #259 №199184506 
>>199184457
Лол, императивный петух кукарекает.
Аноним 01/07/19 Пнд 08:27:57 #260 №199184520 
блин нафиг мне редьюс

>>199184363
могу вообще в лог н проходов епт

const res = [];
arr.sort((a, b) => a-b);
res.push(arr[0]);
res.push(arr[arr.length - 1]);
console.log(res);
Аноним 01/07/19 Пнд 08:28:21 #261 №199184533 
без редьюс
console.log(Math.max(...arr), Math.min(...arr));
Аноним 01/07/19 Пнд 08:29:35 #262 №199184552 
>>199184520
А один цикл имеет линейную сложность. Шах и мат.
Аноним 01/07/19 Пнд 08:29:51 #263 №199184557 
>>199184457
Я про подобный вариант и писал. Единственное, что у тебя можно исправить - на es6 перевести, все-таки var и доисторический for это уже перебор.
>>199184520
Какая же макака господе, ты еще хуже сделал, лол
sage[mailto:sage] Аноним 01/07/19 Пнд 08:31:14 #264 №199184598 
>>199184466
Благодарю. Ошибки по вине шакабы, т.к. она кушает i в квадратных скобках (можешь сам попробовать написать).

Если что, я к фронтэнду отношения не имею, т.к. я Pure C/C# программист, который дико дрочит на алгоритмы. JS знаю на базовом уровне, т.к. часто приходится высеры на ноде/чистом JS разбирать
Аноним 01/07/19 Пнд 08:31:57 #265 №199184613 
>>199171085
джва раза по массиву пробегается так-то. Это не лучшее.
Аноним 01/07/19 Пнд 08:32:01 #266 №199184617 
>>199184557
я знаю что это медленнее чем в два прохода
на практике я бы сделал так >>199184533

>>199184410
почитаемей того кторый в один проход
все сразу ясно что он делает
Аноним 01/07/19 Пнд 08:32:15 #267 №199184625 
>>199184598
Я тоже епта
Аспнеткор дев 1.5года опыта зп 25к)))
Аноним 01/07/19 Пнд 08:33:52 #268 №199184661 
Программисты пидорасы и не должны жить на этом свете
Аноним 01/07/19 Пнд 08:34:25 #269 №199184674 
>>199184617
>я знаю что это медленнее чем в два прохода
>на практике я бы сделал так
Попробуй включить мозги и подумать, что кроется за магическими конструкциями Math.min, Math.max
нахуй я пытаюсь сделать из макаки человека, я съебываю, арибидерчи
Аноним 01/07/19 Пнд 08:34:26 #270 №199184675 
>>199184625
Дев - девка чтоли? Иди сюда, ебать буду
sage[mailto:sage] Аноним 01/07/19 Пнд 08:34:50 #271 №199184685 
>>199184674
Ну и пошел ты нахуй
Аноним 01/07/19 Пнд 08:36:24 #272 №199184728 
>>199184674
проход по массиву
два прохода
можно сделать один если критично, обычно нет
Аноним 01/07/19 Пнд 08:38:18 #273 №199184765 
>>199184557
>Единственное, что у тебя можно исправить - на es6 перевести

>1. let, const и блочная область видимости

>Ключевое слово let позволяет объявлять переменные с ограниченной областью видимости — только для блока {...}, в котором происходит объявление. Это называется блочной областью видимости.

Блять, жаваскриптеры догадались до идеи локальных переменных реализованной в 1972 году Ричи в Си?
sage[mailto:sage] Аноним 01/07/19 Пнд 08:39:36 #274 №199184802 
>>199184728
>можно сделать один если критично, обычно нет
А потом сайты по 5-10 секунд прогружаются, занимая 100% процессорного времени из-за высеров подобных тебе макак. Просто выпились нахуй, макака ебучая. Лень ему 2 строчки дописать, блять
Аноним 01/07/19 Пнд 08:40:33 #275 №199184830 
>>199184728
>проход по массиву
>два прохода


Если твой метод будет встроен в цикл тобi пiзда
Аноним 01/07/19 Пнд 08:41:18 #276 №199184848 
>>199184802
это все равно линейная сложность
sage[mailto:sage] Аноним 01/07/19 Пнд 08:42:24 #277 №199184872 
>>199184765
Лол, var в JS это не локальная переменная? А, теперь ясно, почему сайт с функционалом уровня веб 1.0, но зато плавненькими говноанимациями и выскакивающими JS-формочками на популярных фреймворках по 40-50 мегабайт оперативы занимает
Аноним 01/07/19 Пнд 08:42:35 #278 №199184876 
>>199184765
Да, потихоньку js становится похож на язык для людей.
Я вообще с# разработчик, но иногда имею дело с js, в том числе для личных небольших проектов, где нужно по-быстрому организовать ui без мозгоебли.
>>199184848
Не стоит недооценивать важность констант, особенно когда речь идет об огромных объемах данных.
sage[mailto:sage] Аноним 01/07/19 Пнд 08:45:00 #279 №199184942 
>>199184848
Сложность моего алгоритма - O(n), твоего O(2n).

Алсо, макака: время, затраченное на выполнение алгоритма, зависит не от его сложности
sage[mailto:sage] Аноним 01/07/19 Пнд 08:48:29 #280 №199185062 
>>199184942
>O(2n)
Дансгейм эксплейн
Аноним 01/07/19 Пнд 08:50:30 #281 №199185115 
>>199184942
>зависит не от его сложности


скажем так не только от его сложности но и от реализации и типа данных с которыми приходится работать - одно дело обсчитывать побитовые пиксели, другое какие-нибудь сложные структуры типа несортированных списков или вообще линейных массивов
Аноним 01/07/19 Пнд 08:51:24 #282 №199185136 
>>199184872
у нее функциональный скоуп т.е. в случае с циклом она может за него выскочить, а из функции вар не выскочит
sage[mailto:sage] Аноним 01/07/19 Пнд 08:51:56 #283 №199185147 
>>199184876
>где нужно по-быстрому организовать ui без мозгоебли
WPF чем не нравится? Или не на мокропиське сидишь/кроссплатформеность нужна? А для себя я вообще всегда пишу консолечку вместо GUI, т.к. в C# там можно такое творить, что для разработки GUI потребуется раза в 3 больше времени. Алсо, как вариант писать страницу на HTML+JS, а открывать с кода при помощи Browser из WPF, но тоже только под мокропиську (не смотрел, как там это в Mono реализовали, может и у них есть чего), да ещё и с особенностями движка JS в IE могут быть проблемы
Аноним 01/07/19 Пнд 08:52:08 #284 №199185152 
>>199184942
>Алсо, макака: время, затраченное на выполнение алгоритма, зависит не от его сложности
зачем тогда парится лол
Аноним 01/07/19 Пнд 08:56:08 #285 №199185285 
Там же вроде min и max методы есть
Аноним 01/07/19 Пнд 08:56:23 #286 №199185291 
>>199164010 (OP)
>Сам то я могу но скорее нужен оптимальный вариант от анона
Дада, конечно...
Аноним 01/07/19 Пнд 09:05:33 #287 №199185535 
>>199185147
Мне WPF вообще не вкатил, особенно XAML. Нужно было иконку в трей запилить, а нативной поддержки нет, надо тянуть с WinForms, короче залупа и таких нюансов дохуя. Стилизация элементов неудобная и громоздкая, стили темплейты всякие создавать, плодить вьюмодели для биндинга. Одним словом, мозгоебля. В JS всё как-то более органично в этом плане.
Кроссплатформенность тоже играет роль, безусловно.
Меня вот заинтересовал Blazor, который запускает .NET с помощью WebAssembly, но он пока в превью, ждемс.
Аноним 01/07/19 Пнд 09:06:16 #288 №199185560 
>>199164496
Зачем?
Аноним 01/07/19 Пнд 09:09:58 #289 №199185660 
>>199164010 (OP)
var a = [-10, 52, 22, 72, 144]
var mx = -99999
var mn = 99999
for (var i = 0; i < a.length; ++i) {
if (a < mn) {
mn = a
}
if (a > mx) {
mx = a
}
}
console.log('min: ', mn, 'max: ', mx)
Аноним 01/07/19 Пнд 09:10:59 #290 №199185681 
>>199185660
фикс. [ i ] за тег принимается макакой
var a = [-10, 52, 22, 72, 144]
var mx = -99999
var mn = 99999
for (var i = 0; i < a.length; ++i) {
if (a[ i ] < mn) {
mn = a[ i ]
}
if (a[ i ] > mx) {
mx = a[ i ]
}
}
console.log('min: ', mn, 'max', mx)
sage[mailto:sage] Аноним 01/07/19 Пнд 09:21:48 #291 №199185982 
>>199185062
Смотри, в этой строчке:
>console.log(Math.max(...arr), Math.min(...arr));
Делается два прохода по массиву (первый для нахождения Math.min, второй для Math.max). В моем алгоритме оно делает только один проход по массиву.

>>199185136
Понял. В C# такое можно реализовать как минимум двумя методами:

1. С помощью IDisposable, но там сахар идет такой:
using(/объявление и инициализация переменной/) {
} //после закрытия скобки автоматически вызывает метод Dispose к переменной в скобках ()

2. С помощью анонимных методов (функций):
{
int x = 5;
return x + 5;
} //после закрытия скобки все локальные переменные утилизируются

А ещё можно с помощью локальных (вложенных) функций, да

>>199185535
У меня есть глупая привычка - путать названия WPF и WinForms, так что я изначально подразумевал WinForms. XAML я тоже не люблю, из-за этого им не пользуюсь. Алсо видел библиотеки с сахаром к WinForms для нескольких скриптовых языков, было забавно писать GUI с их помощью, но тащить к скриптопараше DLL на компилируемых языках для скорости и надежности ещё хуже, чем написать пару лишних строчек на C#. Повсеметсного введения WebAssembly на сайтах я уже где-то год жду, всё никак не дождусь
Аноним 01/07/19 Пнд 09:28:05 #292 №199186178 
>>199185982

>return x + 5;
>} //после закрытия скобки все локальные переменные утилизируются

А если я возвращаю объект, он не утилизируется в этот момент деструктором как в С++?
Аноним 01/07/19 Пнд 09:31:23 #293 №199186293 
>>199164010 (OP)
arr = arr.reduce(([min, max] , el) => { if (el < min) min = el; if (el > max) max = el; return [min, max], [Number.Infinity, -Number.Infinity]);
Аноним 01/07/19 Пнд 09:38:55 #294 №199186540 
>>199186293
представил хоть сколько-нибудь большой проект на таком говнокоде и охуел
тысячи файлов и в каждом сотни, а то и тысячи строк такого "чуда", бляяя
Аноним 01/07/19 Пнд 09:47:50 #295 №199186811 
>>199186293
найс
Аноним 01/07/19 Пнд 09:50:50 #296 №199186923 
>>199169773
Не будет, инкреметироваться через минус нельзя, кинет ошибку.
мимо_сеньеор_из_гугла
Аноним 01/07/19 Пнд 09:51:33 #297 №199186948 
Иди нахуй
Аноним 01/07/19 Пнд 09:53:23 #298 №199187006 
>>199186293
Хорошая попытка. Мне нравится, что ты используешь только один вызов редуса, а не два, что будет существенно дольше.
Аноним 01/07/19 Пнд 09:54:00 #299 №199187024 
>>199186540
Мне похуй, за это платят 8к нерублей
Аноним 01/07/19 Пнд 09:57:43 #300 №199187137 
>>199164010 (OP)
Math.min(...tvoyEbanyyMasiv)
Math.max(...tvoyEbanyyMasiv)

Джве секунды в гугле
sage[mailto:sage] Аноним 01/07/19 Пнд 09:59:29 #301 №199187191 
>>199185982
По о нотации О(к×н) =О(н)
Аноним 01/07/19 Пнд 10:02:14 #302 №199187286 
>>199164010 (OP)
Пиздец вы ебанутые, я весь тред охуеваю, тут куча программистов сидят и не могут написать простейший перебор циклом массива. Ещё и срут друг на друга, хули вообще вы может тут сделать? В любом случае надо по всем элементам пройти. Ну 3 тысячи и чего? 3 тысячи итераций это очень мало, особенно когда внутри тупо сравнение
мимо программированием занимался только в школе и только олимпиадным
Аноним 01/07/19 Пнд 10:04:26 #303 №199187366 
>>199187191
это что-то вроде о(n + n)?

>>199187137
меня тут уже давно обсирают за такое решение лол
Аноним 01/07/19 Пнд 10:05:04 #304 №199187389 
>>199187286
>3 тысячи итераций
мы вам перезвоним
Аноним 01/07/19 Пнд 10:05:11 #305 №199187393 
>>199187191
> По о нотации О(к×н) =О(н)
Если ты делаешь задачу в институте, в условии которой написано "выполнить за О(н)", то да, за такое решение ты получишь зачет.
Но в реальной жизни писать код, который будет работать почти в к раз медленнее очевидного решения - признак непрофессионализма.
Аноним 01/07/19 Пнд 10:07:07 #306 №199187446 
>>199187286
> 3 тысячи итераций это очень мало, особенно когда внутри тупо сравнение
Ты не знаешь, какие это элементы и насколько сложно в них определено сравнение.
Аноним 01/07/19 Пнд 10:07:12 #307 №199187450 
как правильно записывать о нотацию с константой программазаурусы епт, вы там 8к нерублей получаете должны знать
Аноним 01/07/19 Пнд 10:08:36 #308 №199187504 
>>199186293
> arr = arr.reduce(([min, max] , el) => { if (el < min) min = el; if (el > max) max = el; return [min, max], [Number.Infinity, -Number.Infinity]);

Ебанулись совсем с функциональщиной.

const findMinMax = (arr) => {
let min = arr[0];
let max = arr[0];

for (let i = 0; i < arr.length; i++) {
if (arr > max) {
max = arr;
}

if (arr < min) {
min = arr;
}
}

return {min, max};
}

const {min, max} = findMinMax([6, 0, -10, 10, 12, 4]);

console.log(min);
console.log(max);

И работать будет быстрее чем ваше говнище раз в 15.
Аноним 01/07/19 Пнд 10:09:24 #309 №199187530 
>>199187389
Ну давай, сравни 3 тысячи чисел со своими двумя не сделая 3 тысячи итераций
>>199187366
А что хорошего в этом решении? Вместо одного цикла два, ещё и тянут за собой вес модуля math с кучей лишнего(не знаю, как там в жс, у меня на нём опыта нет, но внутри max и min есть как минимум куча лишнего кода про сравнение чисел)
Аноним 01/07/19 Пнд 10:12:55 #310 №199187647 
>>199187446
Там числа по условию задачи. Но вообще ты прав.
Аноним 01/07/19 Пнд 10:14:47 #311 №199187699 
>>199187530
Хотя я так сейчас подумал, что в max и min особо лишнего кода нет, но в любом случае модуль math и два цикла вместо одного
Аноним 01/07/19 Пнд 10:15:17 #312 №199187715 
>>199187530
>куча лишнего кода про сравнение чисел


а ведь иногда сравнивают не только числа но и структуры, лол
sage[mailto:sage] Аноним 01/07/19 Пнд 10:17:04 #313 №199187771 
>>199186178
Я, может, немного непонятно написал про анонимные методы. Это, по сути, обычный метод, используемый для делегации (по сути то же, что pointer на функцию в C/++). При возвращении (return) переменной методом value-type переменные копируются, а reference-type переменные возвращаются. Объекты - reference-type переменные, т.е. непосредственно при возвращении деструктор (который в C# называется финализатор - finalizer) вызван не будет. Если же ты имеешь ввиду вызов финализатора, когда объект в методе не возвращается (т.е. стандартная утилизация локальных переменных) - он будет вызван сборщиком мусора (через неопределенное количество времени) либо может быть вызыван вручную (при помощи метода Finalize)
Аноним 01/07/19 Пнд 10:17:50 #314 №199187804 
>>199187699
это дефолтный объект его не надо импортить
Аноним 01/07/19 Пнд 10:19:53 #315 №199187887 
>>199187530
1. Math это часть __стандартной__ библиотеки и она тянется __всегда__
2. Этот модуль должен быть оптимизирован просто пиздец как. Я не удивлюсь что он не на js а нативный
3. Два подхода это просто плата за удобство
Аноним 01/07/19 Пнд 10:19:55 #316 №199187889 
>>199187450
Я не за 8к работаю, но преподаю на педпрактике в универе, давай тебе расскажу
> как правильно записывать о нотацию с константой
О-нотация - это грубейшая оценка и константу там указывать не принято.
Тета-нотация более точная, и там можно указать константу, если она несет какую-то информацию об алгоритме, а можно и опустить.
>>199187504
Разная семантика немного. Ты в своем коде явно указываешь перебор в явном порядке одним ядром , а редус показывает, что ты хочешь получить максимальное и минимальное значение, каким образом и в каком порядке что с чем сравнивать - неважно. Возможно, что редус будет параллельный и в работает в p раз быстрее твоего варианта, где p - число процессоров.
Аноним 01/07/19 Пнд 10:22:34 #317 №199187988 
>>199187715
Не знаю, что там входит в их функции сравнения, но если это модуль math, то скорее всего он берет или числа или массив чисел. Но вообще хз.
>>199187804
Ну 2n итераций вместо n в любом случае
Аноним 01/07/19 Пнд 10:28:50 #318 №199188256 
>>199187889
> Возможно, что редус будет параллельный и в работает в p раз быстрее твоего варианта, где p - число процессоров.
Ты не прав.

1) Reduce просто декларативней.
2) Он не делит поиск на несколько потоков или дай боже ядер. Все уже посчитали до тебя https://github.com/dg92/Performance-Analysis-JS
3) Если автор хочет классной производительности, чтобы страничка не тормозила, пусть отделяет от отдельного потока сервис воркер и считает в нем, тогда действительно будет задействовано второе ядро, но судя по вопросу, ему еще до воркеров как до китая раком.
Аноним 01/07/19 Пнд 10:30:06 #319 №199188308 
>>199187887
Я сомневаюсь, что его нативность перекроет увеличение итераций в два раза. Оптимизировать там тоже вроде как нечего, что такого ты сделаешь с простейшим проходом по массиву?
Аноним 01/07/19 Пнд 10:34:26 #320 №199188472 
>>199164010 (OP)
Math.max(array)
Math.min(array)
\thread
Аноним 01/07/19 Пнд 10:36:49 #321 №199188572 
>>199188256
Пардон, для двух ядер, web-workers, конечно.
sage[mailto:sage] Аноним 01/07/19 Пнд 10:36:53 #322 №199188577 
>>199188472
А как же O(2n) твоего решения вместо шустрого O(n) при обычном лупе?
Аноним 01/07/19 Пнд 10:37:18 #323 №199188598 
Беседу java-господ уже постили?
>>199164010 (OP)
Аноним 01/07/19 Пнд 10:38:49 #324 №199188668 
>>199188256
> 1) Reduce просто декларативней.
Нет. Обход цикла идет в явном порядке, а редус не определяет какой-то особенный порядок обхода. Это играет особое значение в нетранзитивных операциях. Вобщем, редус и обход цикла может дать разные результаты, потому что у них разная семантика.
> Он не делит поиск на несколько потоков или дай боже ядер.
Это особенность реализации, а я говорю про концепцию редуса в принципе. Например, в openmpi он, очевидно, делит работу на несколько ядер и даже машин в нетривальном порядке.
Аноним 01/07/19 Пнд 10:41:53 #325 №199188800 
>>199188308
Хуй знает, братюнь, я в этом плане смотрю только с точки зрения практики. А она говорит мне как то так:
1. Модуль стандартный, значит оверхэда от импорта не будет и всем насрать
2. Модуль старый и хорошо проверенный
3. 3000 элементов это очень маленькая цифра, две итерации вместо одной будут совершенно незаметны
4. Сам по себе js говорит от том что дела на фронтэнде делаются и там ничего тяжелого из вычислений быть не может (в идеале конечно), поэтому тем более насрать

По всем вменяемым кейсам выходит насрать. Ну а если оно юзается на очень больших данных и(или) в браузере могу предположить что автор ССЗБ и уменьшение итераций до одной тут не поможет особо. Зато скорость написания кода и читаемость ебически повышаются, менеджеры могут порадоваться
Аноним 01/07/19 Пнд 10:42:11 #326 №199188812 
>>199188668
> Нет. Обход цикла идет в явном порядке, а редус не определяет какой-то особенный порядок обхода. Это играет особое значение в нетранзитивных операциях. Вобщем, редус и обход цикла может дать разные результаты, потому что у них разная семантика.

По твоей логике, если я напишу код вроде:
const some = [-12, 0, 4, 5, 14, 13].reduce((acc, el) => {
console.log(el)
}, 0); в консоль должны падать элементы в разном порядке, но этого не происходит.
Аноним 01/07/19 Пнд 10:44:25 #327 №199188907 
>>199188598
А при чем тут Java?
sage[mailto:sage] Аноним 01/07/19 Пнд 10:45:39 #328 №199188951 
Развести срач на 300 тредов из за простейшего задания? Только двачеры так умеют.
кто действительно думает что нужно сортировать массив - умрите
Аноним 01/07/19 Пнд 10:47:36 #329 №199189038 
>>199188951
Двачую, простого перебора со сравнением с max=arr[0] и min=arr[0] достаточно. Тред не читал. мимо тимлид[/i]
Аноним 01/07/19 Пнд 10:49:54 #330 №199189138 
>>199188951
>>199189038
Тут срач О(2n) vs O(n) и reduce vs for loop
sage[mailto:sage] Аноним 01/07/19 Пнд 10:55:04 #331 №199189346 
>>199189138
И то и то проходит за O(n).
Какая разница?
Что за 2n?
sage[mailto:sage] Аноним 01/07/19 Пнд 10:55:58 #332 №199189383 
>>199189346
2^n или просто 2*n?
sage[mailto:sage] Аноним 01/07/19 Пнд 10:56:44 #333 №199189412 
>>199189383
>2*n
this
sage[mailto:sage] Аноним 01/07/19 Пнд 10:57:26 #334 №199189440 
>>199189383
Если первое, то где вы такое взяли?
Если второе, то какие нахуй константы при оценке?
Аноним 01/07/19 Пнд 10:58:04 #335 №199189461 
>>199189346
Ну очевидно, что если в массиве 4000 элементов,
два Math.max, Math.min — 8000 операций чтения.

один луп - 4000 операций чтения.

Для современных ПЭК — похуй, так как рост сложности остается линейный, но перфекционисты в треде негодуют
Аноним 01/07/19 Пнд 11:00:51 #336 №199189573 
blob
>>199189346
НИ ХУ Я
Аноним 01/07/19 Пнд 11:03:57 #337 №199189697 
blob
/t
Аноним 01/07/19 Пнд 11:04:42 #338 №199189730 
>>199172261
Вот вам написали ебать, хули вы свои скрипты крутите ебать?
Аноним 01/07/19 Пнд 11:06:41 #339 №199189812 
>>199164010 (OP)
Если ты самоучка делай везде проверку к числам. тип 1>0 2>0 3>0 и тд и тп. Соотвественно в зависимости от того что надо. А потом уже ищи способы делать это все без такой хуиты.
Аноним 01/07/19 Пнд 11:15:22 #340 №199190189 
girls-who-code-calculate-a-and-b-product-without-using-the-[...].jpg
>>199164010 (OP)
Аноним 01/07/19 Пнд 11:20:11 #341 №199190394 
>>199189697
Стандартный луп быстрее функции из math, лол, вот тебе пиздецовая оптимизация и нативность.
Аноним 01/07/19 Пнд 11:27:27 #342 №199190704 
>>199189697
хахаха, а еще макакой обзывали
Аноним 01/07/19 Пнд 11:29:14 #343 №199190764 
>>199190394
ну так там один проход а не два как в максе
но разница совсем минимальна
Аноним 01/07/19 Пнд 11:31:18 #344 №199190853 
>>199190189
А что не так?
Аноним 01/07/19 Пнд 11:32:38 #345 №199190919 
>>199190764
И там и там два прохода, смотри на картинку, там стандартные лупы в один не объединены, как мы хотели, и всё равно быстрее, чем вызов функций из math
Аноним 01/07/19 Пнд 11:33:34 #346 №199190950 
>>199190853
Надо было case использовать
Аноним 01/07/19 Пнд 11:34:47 #347 №199190983 
>>199190189

ДВАЧЕР ТРАТИТ ПОЛТОРА ДНЯ НА ПОИСК НАИБОЛЕЕ ОПТИМАЛЬНОЕ РЕШЕНИЕ, ПРОВЕЛ ТЕСТЫ НА СРАВНЕНИЕ
@
ЕБУТ В ОЧКО ЗА ПРОЕБ КУЧИ ВРЕМЕНИ
@
ПИЗДА ПЕТРОВНА ХУЯРИТ ЗА 5 МИНУТ ПИКРЕЛЕЙТЕД, ПОЛУЧАЕТ ПРЕМИЮ, ВСЯ КОМАНДА ДОВОЛЬНА, МАНАГЕР ДОВОЛЕН


вас рыночек порешал давно, долбоебы, какие нахуй O(n) vs O(2n) в жс
Аноним 01/07/19 Пнд 11:40:45 #348 №199191208 
java-песочница-921057.jpeg
>>199188907
Че ты там кукарекнул?
Аноним 01/07/19 Пнд 11:41:39 #349 №199191248 
>>199191208
тупой даун жс от джавы не отличает, зато над мемами уже кекает, наес
Аноним 01/07/19 Пнд 11:46:21 #350 №199191473 
>>199191248
Сейчас бы в сортах пидарасов разбираться
Аноним 01/07/19 Пнд 11:54:33 #351 №199191825 
Охуеваю с зумеров, которые пишут свои let, const и прочие фичи, которые добавлены в спецификацию вчера, и поддерживаются только в одном из браузеров. Как вы будете писать кроссбраузерный код, который должен поддерживать старые браузеры (да, в IE нет автоапдейтов)? Будете писать вторую версию библиотеки, чтобы браузер об синтаксис не ломался? Вы совсем дауны?
Аноним 01/07/19 Пнд 12:00:43 #352 №199192109 
>>199187137
Ага, только увеличь размер массива, и у тебя будет валиться с ошибкой кол-ва аргументов, не говоря уже про двойную сложность
Аноним 01/07/19 Пнд 12:03:09 #353 №199192233 
>>199164010 (OP)
Пошёл нахуй, это элементарное задание, никто твою домашку делать не будет.
>>199191825
Старые браузеры не нужны, аутист.
Если какая-то контора использует конкретный старый ie, то это будет в тз. Остальные некроёбы не нужны и идут нахуй.
Аноним 01/07/19 Пнд 12:03:41 #354 №199192262 
>>199191825
ебанашка, твой обоссаный ие почти нигде не нужен, а где нужен все решается бабелом и полифилами.
Аноним 01/07/19 Пнд 12:05:32 #355 №199192360 
>>199191825
почитай, что такое транспайлер, джун обосраный
Аноним 01/07/19 Пнд 12:05:43 #356 №199192366 
>>199192233
>>199192262
Вижу, вы никогда не делали массовые продукты. Тем более, огромное количество корпоративных пользователей сидит с IE. А полифиллы свои можешь себе в задницу засунуть.
Аноним 01/07/19 Пнд 12:09:48 #357 №199192598 
>>199190983
>O(n) vs O(2n)
>O(2n)
Ебанутые
Аноним 01/07/19 Пнд 12:15:27 #358 №199192797 
>>199192360
То есть, ты пишешь новый модный код, а потом конвертируешь его в говно, но которое будет работать на всех браузерах? Тебе самому не смешно?
Аноним 01/07/19 Пнд 12:16:28 #359 №199192845 
>>199192797
То есть ты сразу пишешь говно, но которое будет работать во всех браузерах? Поверь, компилятор намного умнее тебя.
Аноним 01/07/19 Пнд 12:17:37 #360 №199192893 
>>199191825
es6 уже стандарт тащемта
на осла всем пофиг
Аноним 01/07/19 Пнд 12:18:18 #361 №199192920 
>>199192109
насколько нужно увеличить размер массива чтобы сломать Math.max/min спредом?
Аноним 01/07/19 Пнд 12:21:27 #362 №199193070 
>>199192366
тупой ебанат, поддержка конкретных браузеров всегда обсуждается, если у вас требуется поддержка ие, то вы ебошите через бабел или тупо пишете на нужной версии ес, в чем проблема? Твой пердеж это хуета уровня ПОСОНЫ НА МОЕЙ ТЫРПРАЙЗ ГАЛЕРЕ ПИШУТ НА ДЖАВА 5, НАХУЯ ВАМ 8

>>199192797
Не мода, а удобства, ты какой-то неосилятор, если считаешь, что let и const просто модная хуета, а не удобные и важные вещи, которые в любом языке есть.

Аноним 01/07/19 Пнд 12:22:58 #363 №199193149 
вопрос
а если использовать фетч, он через бабеля будет поддерживать ie или нет?
Аноним 01/07/19 Пнд 12:23:20 #364 №199193168 
>>199192920
У меня где-то около 125640 всё поломалось
мимо
Аноним 01/07/19 Пнд 12:24:47 #365 №199193240 
>>199192920
Зависит от браузера, как я понимаю, у меня сломалось где-то на 600к
Аноним 01/07/19 Пнд 12:26:31 #366 №199193334 
>>199182614
Долбаеб присвоил минимуму и максимуму 0. Минимуму присваивай максимально возможное значение в массиве, максимуму минимальное. Так конечно не будет работать.
Аноним 01/07/19 Пнд 12:28:21 #367 №199193424 
>>199193334
И мне кажется i<=array. Хотя я не в курсе про js.
Аноним 01/07/19 Пнд 12:28:29 #368 №199193430 
>>199193334
>Минимуму присваивай максимально возможное значение в массиве, максимуму минимальное.
А как их со старта то узнать? плюс минус INF? Не проще ли взять первый элемент?
мимо
Аноним 01/07/19 Пнд 12:30:02 #369 №199193494 
>>199193240
Фуррифокс?
Аноним 01/07/19 Пнд 12:31:17 #370 №199193554 
>>199193494
йеп
Аноним 01/07/19 Пнд 12:32:37 #371 №199193617 
>>199193430
Да, можно первый элемент тоже, но обычно присваивают границы значений. Если не в курсе про них, присваивай первый.
Аноним 01/07/19 Пнд 13:12:28 #372 №199195501 
>>199190394
С учетом того насколько маленькая там разница в скорости при сокращении объема исходника я, пожалуй, повторюсь - вообще насрать
Аноним 01/07/19 Пнд 13:14:05 #373 №199195555 
>>199192109
>> Зависит от браузера, как я понимаю, у меня сломалось где-то на 600к
>> У меня где-то около 125640 всё поломалось
Братюнь, если кто то будет что то считать на фронтэнде в таких объемах то сломавшийся Math это меньшая из его / ее проблем имхо
Аноним 01/07/19 Пнд 13:16:57 #374 №199195670 
>>199195555
>считать на фронтэнде
А что, надежды на всякие webgl всё?
И да, не забываем про ноду.
мимо
Аноним 01/07/19 Пнд 13:24:29 #375 №199195979 
>>199195670
>фронтенд
>нода
Аноним 01/07/19 Пнд 13:27:28 #376 №199196098 
>>199195979
>гринтекст
Аноним 01/07/19 Пнд 13:29:22 #377 №199196167 
>>199164010 (OP)
Квиксорт, затем выиаскиваешь 1 и последний элемент массива
Аноним 01/07/19 Пнд 13:31:22 #378 №199196252 
>>199195670
1. У webgl под капотом не js же. Хотя я в этом вопросе не компетентен
2. Если речь о ноде на бэке то вероятнее всего все эти вычисления в фоне идут а там +-5% тоже не критичны

А вообще имхо это глупый срач на тему удобство написания vs скорость выполнения. It depends же. В изначальной задаче оп вообще про 3000 объектов писал, под эти цифры пойдёт. Под что то люто большое нужно будет изъебнуться, это норма
Аноним 01/07/19 Пнд 13:34:52 #379 №199196407 
>>199196252
>У webgl под капотом не js же
Да пофиг, что там под капотом, работать с api то из js.
>Если речь о ноде на бэке то вероятнее всего все эти вычисления в фоне идут а там +-5% тоже не критичны
Чел, тут квиксорты предлагают, это уже совсем не 5 процентов. И да оно не тупит, оно падает с ошибкой.
>у меня сломалось где-то на 600к
много аргументов
>около 125640 всё поломалось
стековерфлоу

Аноним 01/07/19 Пнд 13:45:57 #380 №199196883 
>>199196407
>> Чел, тут квиксорты предлагают, это уже совсем не 5 процентов. И да оно не тупит, оно падает с ошибкой.

А я с этим и не спорю

>> В изначальной задаче оп вообще про 3000 объектов писал, под эти цифры пойдёт. Под что то люто большое нужно будет изъебнуться, это норма

Трэд просто ушел в русло "какой алгоритм быстрее в принципе"
Аноним 01/07/19 Пнд 13:47:49 #381 №199196967 
>>199196883
>Трэд просто ушел в русло "какой алгоритм быстрее в принципе"
Потому что это двач, а не бложик ОП-а хуя
Аноним 01/07/19 Пнд 13:49:28 #382 №199197028 
>>199196883
PS
>Сам то я могу но скорее нужен оптимальный вариант от анона
>какой алгоритм быстрее в принципе
Достаточно близкая тема. И да, нет никаких около 3000. Есть 0 и много
Аноним 01/07/19 Пнд 14:50:45 #383 №199199864 
>>199196407
>Чел, тут квиксорты предлагают
никто квиксорт всерьез не предлагал там сразу была написана более высокая сложность -_-
Аноним 01/07/19 Пнд 15:01:08 #384 №199200353 
>>199199864
Вот прям никто
Аноним 01/07/19 Пнд 15:15:07 #385 №199201072 
>>199175591
Жестко ты его. Мне аж стыдно стало за парня.
comments powered by Disqus

Отзывы и предложения