Big O на интервью

Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Big O на интервью

Post by Mmodel »

Привет,

Пугают как-бы при наёме что могут про big O спросить.
Интересуюсь что тут такого коварного с ним могут спросить на интервью?
Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity.
вроде как надо подсчитать worst scenario, т.е. если даже дают код и строки кода то надо брать каждую строку за один step и дальше всякие loops за N*N ну и это всё сложить.

Допустим
function(n) {
dosomething();
for(i=0; i<n;i++){
dosomething();
}
}
то это будет O(n+n*n)
даже если dosomething не всегда срабатывает.

Вроде как функция стремиться и функция доходит и не идёт дальше одно и тоже в Computer Science.

Наверное могут спросить сколько алгоритм жрёт CPU, а сколько memory в best case и worst case и balance between them используя всякие алгоритмы.

Допустим binary search жрёт меньше всего CPU, но больше всего memory https://en.wikipedia.org/wiki/Binary_search_algorithm
User avatar
Dweller
Уже с Приветом
Posts: 12258
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Big O на интервью

Post by Dweller »

Big O очень редко бывает на интервью, только очень подготовленный кандидат может его вызвать у интервьюера
Чаще попадаются Big D, причем такие что хочется дать в рожу после 10 минуты
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Big O на интервью

Post by M. Ridcully »

Dweller wrote: 27 Aug 2020 04:43 Big O очень редко бывает на интервью, только очень подготовленный кандидат может его вызвать у интервьюера
Чаще попадаются Big D, причем такие что хочется дать в рожу после 10 минуты
:lol:
Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Re: Big O на интервью

Post by Mmodel »

Ещё могут дать
Dijkstra и A*

Dijkstra вот так фигачит
Image

а A* вот так
Image
A* is just like Dijkstra, the only difference is that A* tries to look for a better path by using a heuristic function which gives priority to nodes that are supposed to be better than others while Dijkstra's just explore all possible paths.
Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Re: Big O на интервью

Post by Mmodel »

Dweller wrote: 27 Aug 2020 04:43 Чаще попадаются Big D
Ещё есть Small o,
вот мне например найти girl в Bay Area стремиться к Small o
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10524
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: Big O на интервью

Post by IvanGrozniy »

Mmodel wrote: 27 Aug 2020 07:20
Dweller wrote: 27 Aug 2020 04:43 Чаще попадаются Big D
Ещё есть Small o,
вот мне например найти girl в Bay Area стремиться к Small o
Незачет! :D Функцию после small o нужно упоминать, иначе не имеет смысла.
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10524
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: Big O на интервью

Post by IvanGrozniy »

Mmodel wrote: 27 Aug 2020 04:34 Привет,

Пугают как-бы при наёме что могут про big O спросить.
Интересуюсь что тут такого коварного с ним могут спросить на интервью?
Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity.
вроде как надо подсчитать worst scenario, т.е. если даже дают код и строки кода то надо брать каждую строку за один step и дальше всякие loops за N*N ну и это всё сложить.

Допустим
function(n) {
dosomething();
for(i=0; i<n;i++){
dosomething();
}
}
то это будет O(n+n*n)
даже если dosomething не всегда срабатывает.

Вроде как функция стремиться и функция доходит и не идёт дальше одно и тоже в Computer Science.

Наверное могут спросить сколько алгоритм жрёт CPU, а сколько memory в best case и worst case и balance between them используя всякие алгоритмы.

Допустим binary search жрёт меньше всего CPU, но больше всего memory https://en.wikipedia.org/wiki/Binary_search_algorithm
Кстати говоря о памяти также не забудьте давать 2 оценки: О для количества операций (complexity) и О для использования памяти (space).
Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Re: Big O на интервью

Post by Mmodel »

IvanGrozniy wrote: 27 Aug 2020 10:40 Кстати говоря о памяти также не забудьте давать 2 оценки: О для количества операций (complexity) и О для использования памяти (space).
или

space - это сколько ресурсов жрёт (объём)
time - сколько времени их жрёт (время использования)
complexity - само время (формула времени)
Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Re: Big O на интервью

Post by Mmodel »

По поводу complexity
самый офигенный Image
самый плохой Image
binary search Image

ну и вроде и всё что тут могут спросить.
Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Re: Big O на интервью

Post by Mmodel »

А не, вроде как ещё вот такую фигню могут спросить,
ей точно можно напугать
Image
User avatar
Dweller
Уже с Приветом
Posts: 12258
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Big O на интервью

Post by Dweller »

Mmodel wrote: 27 Aug 2020 07:20
Dweller wrote: 27 Aug 2020 04:43 Чаще попадаются Big D
Ещё есть Small o,
вот мне например найти girl в Bay Area стремиться к Small o
К Small o стремятся многие, ведь не у всех есть Big D :umnik1:
А вот с ним найти girl уже будет Big O, т е линейно, можно каждую неделю менять на новую
8K
Уже с Приветом
Posts: 5540
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Big O на интервью

Post by 8K »

Mmodel wrote: 27 Aug 2020 17:56 По поводу complexity
самый офигенный Image
самый плохой Image
binary search Image

ну и вроде и всё что тут могут спросить.
Простой вопрос насчет O(log N): почему не указано основание логарифма.

Удивительно, но многие впадают в ступор.
Увидев друга, Портос вскрикнул от радости...
Mmodel
Уже с Приветом
Posts: 8193
Joined: 27 Mar 2016 23:56

Re: Big O на интервью

Post by Mmodel »

8K wrote: 27 Aug 2020 20:02 Простой вопрос насчет O(log N): почему не указано основание логарифма.

Удивительно, но многие впадают в ступор.
на сколько я знаю это просто так принято в computer science, т.е. так имеется ввиду число e Image

https://en.wikipedia.org/wiki/Logarithm
https://en.wikipedia.org/wiki/E_(mathematical_constant)
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10524
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: Big O на интервью

Post by IvanGrozniy »

Mmodel wrote: 27 Aug 2020 20:18
8K wrote: 27 Aug 2020 20:02 Простой вопрос насчет O(log N): почему не указано основание логарифма.

Удивительно, но многие впадают в ступор.
на сколько я знаю это просто так принято в computer science, т.е. так имеется ввиду число e Image

https://en.wikipedia.org/wiki/Logarithm
https://en.wikipedia.org/wiki/E_(mathematical_constant)
Ну этот «готча» вопрос может ретивый программист спросить. Лучше знать ответ. При бинарном основа 2. При обычном дереве зависит от количества веток исходящей от вершины.
Big Cheese
Уже с Приветом
Posts: 1211
Joined: 02 Jul 2000 09:01
Location: SFBA

Re: Big O на интервью

Post by Big Cheese »

Почему сразу "gotcha" вопрос-то? Скорее на понимание математики арифметики Пупкина.
8K
Уже с Приветом
Posts: 5540
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Big O на интервью

Post by 8K »

Big Cheese wrote: 27 Aug 2020 20:45 Почему сразу "gotcha" вопрос-то? Скорее на понимание математики арифметики Пупкина.
Именно. Константу можно выносить за скобки и отбрасывать. У логарифма можно писать любое (ну, практически любое) основание, смысл от этого не изменится.

То есть, это мог быть натуральный, десятичный, двоичный логарифм, в общем, неважно, какой. Что интересно, на следующий вопрос про O(N) vs. O(2 N) отвечают правильно.
Увидев друга, Портос вскрикнул от радости...
voyager3
Уже с Приветом
Posts: 1951
Joined: 11 Mar 2015 01:12

Re: Big O на интервью

Post by voyager3 »

Так здесь мало кто помнит формулы перехода между основаниями логарифмов, да и теорию всех этих символов Ландау глубоко не копают. И многое другое из нашей математической программы, которой ещё в школе плешь проели.
Аж завидно становится, как мало нужно было здешним иметь дело с математикой, чтобы работать программистом.
nyekimov
Уже с Приветом
Posts: 2749
Joined: 11 Jul 2015 19:01
Location: Chicago

Re: Big O на интервью

Post by nyekimov »

voyager3 wrote: 28 Aug 2020 15:43 Так здесь мало кто помнит формулы перехода между основаниями логарифмов, да и теорию всех этих символов Ландау глубоко не копают. И многое другое из нашей математической программы, которой ещё в школе плешь проели.
Аж завидно становится, как мало нужно было здешним иметь дело с математикой, чтобы работать программистом.
Нам программистов профессор советских времён капец чморил и грузил - в мое время были кибернетики, которые знали математику лучше нас, математиков. А вы ....
8K
Уже с Приветом
Posts: 5540
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Big O на интервью

Post by 8K »

voyager3 wrote: 28 Aug 2020 15:43 Аж завидно становится, как мало нужно было здешним иметь дело с математикой, чтобы работать программистом.
На правах офтопика.

Они тут вообще клоуны упоротые. Делил на днях бюджет в специальной тулзе. Ну, скажем, условно, мне выделили 50 кусков поощрения на 5 человек. Дал каждому ровно 10 кусков. В графе "остаток" тулза показывает минус ноль долларов (перерасход, типа). Я, честно, не понимаю, как они этого добились, даже если через плавающую точку вычитали.
Увидев друга, Портос вскрикнул от радости...
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Big O на интервью

Post by M. Ridcully »

8K wrote: 28 Aug 2020 20:15 Делил на днях бюджет в специальной тулзе. Ну, скажем, условно, мне выделили 50 кусков поощрения на 5 человек. Дал каждому ровно 10 кусков. В графе "остаток" тулза показывает минус ноль долларов (перерасход, типа). Я, честно, не понимаю, как они этого добились, даже если через плавающую точку вычитали.
Если fp использовали, то это нормально, что получился минус ноль.
Неправильно то, что это показывается как перерасход - минус ноль не меньше нуля.
8K
Уже с Приветом
Posts: 5540
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Big O на интервью

Post by 8K »

M. Ridcully wrote: 28 Aug 2020 21:16
8K wrote: 28 Aug 2020 20:15 Делил на днях бюджет в специальной тулзе. Ну, скажем, условно, мне выделили 50 кусков поощрения на 5 человек. Дал каждому ровно 10 кусков. В графе "остаток" тулза показывает минус ноль долларов (перерасход, типа). Я, честно, не понимаю, как они этого добились, даже если через плавающую точку вычитали.
Если fp использовали, то это нормально, что получился минус ноль.
Неправильно то, что это показывается как перерасход - минус ноль не меньше нуля.
Нельзя ламеров пускать писать финансовый софт, пусть и для внутреннего потребления. Оно, конечно, бухгалтерия потом баланс сведет, но кому-то пришлось на одну копейку меньше дать. Там, очевидно, где-то в шестом-седьмом знаке масенький остаток, но при показе округлили до двух разрядов. Тупизм же, рисовать "-0.00". Где минимальный QA? И кто им вообще разрешил fp использовать?

За интеловскую fp арифметику не скажу, но на Эльбрусе, помню, была давным-давно проблема, что минус ноль отличался от плюс нуля (там знак отдельно хранился). Вроде, пофиксали.
Увидев друга, Портос вскрикнул от радости...
voyager3
Уже с Приветом
Posts: 1951
Joined: 11 Mar 2015 01:12

Re: Big O на интервью

Post by voyager3 »

8K wrote: 28 Aug 2020 20:15 Я, честно, не понимаю, как они этого добились, даже если через плавающую точку вычитали.
https://en.m.wikipedia.org/wiki/Signed_zero
voyager3
Уже с Приветом
Posts: 1951
Joined: 11 Mar 2015 01:12

Re: Big O на интервью

Post by voyager3 »

nyekimov wrote: 28 Aug 2020 19:53 Нам программистов профессор советских времён капец чморил и грузил - в мое время были кибернетики, которые знали математику лучше нас, математиков. А вы ....
Если б они ещё собственно компутер сайнс с инженерией знали.
8K
Уже с Приветом
Posts: 5540
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Big O на интервью

Post by 8K »

voyager3 wrote: 28 Aug 2020 22:18
8K wrote: 28 Aug 2020 20:15 Я, честно, не понимаю, как они этого добились, даже если через плавающую точку вычитали.
https://en.m.wikipedia.org/wiki/Signed_zero
Да я как бы не против нулей или бесконечностей со знаком. Но вычитая 1 из 1, минус ноль не получится. При умножении или делении - согласен.

Видимо, исходный бюджет был слегка меньше, чем показывался, и действительно внутри хранится с плавающей точкой. Т.е. не ровно 50 000, а где-то 49 999.99999. То есть деление все же было (например, наверху раскидали проценты между подразделениями).
Увидев друга, Портос вскрикнул от радости...
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Big O на интервью

Post by M. Ridcully »

8K wrote: 28 Aug 2020 22:12 За интеловскую fp арифметику не скажу, но на Эльбрусе, помню, была давным-давно проблема, что минус ноль отличался от плюс нуля (там знак отдельно хранился). Вроде, пофиксали.
В IEEE 754 минус ноль не то же самое, что плюс ноль, если говорить и бинарном представлении.
Но операции сравнения должны работать правильно.

Return to “Работа и Карьера в IT”