Сообщение Re: вгоняет в депрессию от 12.11.2024 7:57
Изменено 12.11.2024 7:58 netch80
Re: вгоняет в депрессию
Здравствуйте, Codealot, Вы писали:
C>https://stackoverflow.com/questions/13755007/c-sharp-find-highest-array-value-and-index
C>
C>198 плюсов!
C>Ох ты ж б*я с*а е*й п*ц.
C>Ну и в качестве вишенки на торте:
C>
Давай трезво подумаем.
Есть вариант сначала найти максимум — O(N), затем поискать его индекс — снова O(N). Итого O(N).
Есть вариант явным циклом, менее читаемый, и всё равно O(N).
При этом, если посмотреть с точки зрения процессора, первый скан погрузит массив в кэш, поэтому второй пройдёт быстрее, и будет, условно, не 2*C*N, а 1.1*C*N.
При этом при ответе сказано:
Что не так?
Ну да, я бы ещё дописал "а если вы хотите ну совсем экономно, разверните цикл ручками". Собственно это всё, что не совсем хорошо.
C>https://stackoverflow.com/questions/13755007/c-sharp-find-highest-array-value-and-index
C>
C> int maxValue = anArray.Max();
C> int maxIndex = anArray.ToList().IndexOf(maxValue);
C>
C>198 плюсов!
C>Ох ты ж б*я с*а е*й п*ц.
C>Ну и в качестве вишенки на торте:
C>
C>Director/CTO at TensorStack Ltd.
Давай трезво подумаем.
Есть вариант сначала найти максимум — O(N), затем поискать его индекс — снова O(N). Итого O(N).
Есть вариант явным циклом, менее читаемый, и всё равно O(N).
При этом, если посмотреть с точки зрения процессора, первый скан погрузит массив в кэш, поэтому второй пройдёт быстрее, и будет, условно, не 2*C*N, а 1.1*C*N.
При этом при ответе сказано:
This is not the most glamorous way but works.
Что не так?
Ну да, я бы ещё дописал "а если вы хотите ну совсем экономно, разверните цикл ручками". Собственно это всё, что не совсем хорошо.
Re: вгоняет в депрессию
Здравствуйте, Codealot, Вы писали:
C>https://stackoverflow.com/questions/13755007/c-sharp-find-highest-array-value-and-index
C>
C>198 плюсов!
C>Ох ты ж б*я с*а е*й п*ц.
C>Ну и в качестве вишенки на торте:
C>
Давай трезво подумаем.
Есть вариант сначала найти максимум — O(N), затем поискать его индекс — снова O(N). Итого O(N).
Есть вариант явным циклом, менее читаемый, и всё равно O(N).
При этом, если посмотреть с точки зрения процессора, первый скан погрузит массив в кэш, поэтому второй пройдёт быстрее, и будет, условно, не 2*C*N, а 1.1*C*N.
При этом при ответе сказано:
Что не так?
Ну да, я бы ещё дописал "а если вы хотите ну совсем экономно, разверните цикл ручками". Собственно это всё, что не совсем хорошо.
PS: А зачем ты вообще пошёл искать ответ на такой вопрос? )
C>https://stackoverflow.com/questions/13755007/c-sharp-find-highest-array-value-and-index
C>
C> int maxValue = anArray.Max();
C> int maxIndex = anArray.ToList().IndexOf(maxValue);
C>
C>198 плюсов!
C>Ох ты ж б*я с*а е*й п*ц.
C>Ну и в качестве вишенки на торте:
C>
C>Director/CTO at TensorStack Ltd.
Давай трезво подумаем.
Есть вариант сначала найти максимум — O(N), затем поискать его индекс — снова O(N). Итого O(N).
Есть вариант явным циклом, менее читаемый, и всё равно O(N).
При этом, если посмотреть с точки зрения процессора, первый скан погрузит массив в кэш, поэтому второй пройдёт быстрее, и будет, условно, не 2*C*N, а 1.1*C*N.
При этом при ответе сказано:
This is not the most glamorous way but works.
Что не так?
Ну да, я бы ещё дописал "а если вы хотите ну совсем экономно, разверните цикл ручками". Собственно это всё, что не совсем хорошо.
PS: А зачем ты вообще пошёл искать ответ на такой вопрос? )