История изменений
Исправление segfault, (текущая версия) :
Сегодня твоя функция выводит код возврата 0..255, а завтра это развитая система обработки и логирования ошибок.
Еще раз спрошу - что может вызвать такую метаморфозу? Или ты сначала пишешь код системы, а потом принимаешься за ее проектирование?
мои варианты - только то, что надо и только так как надо.
Т.е. специализированый менеджер памяти? Так он и без GC даст прирост производительности.
в твоём коде изначальная непонятка с нулём, с которым ты всё и сравниваешь. Сравнивать нужно первый элемент с остальными.
При чистом поиске максимума - да. Но у меня эти уровни выбираются из списка неотрицательных констант, которые здесь я опустил. А int применяется как дефолтный тип в Си.
Я так бегло русский вариант просмотрел - вроде всё правильно написано. Явных ляпов как не странно нет.
Я тоже бегло прочитал, потом воспользовался поиском по странице - нигде ничего не написано про выделение памяти, только про освобождение.
Так вот, O(f(N)) это по определению время выполнения, делённое на константу, в случае если N стремится к бесконечности.
Если N стремится к бесконечности, любая возрастающая функция от него тождественно равна бесконечности. Так зачем же все-таки записывают функцию?
И запись O(f(N)) как раз и говорит, как это время зависит в пределе.
В каком пределе? В бесконечности? А зачем мне эта бесконечность, если реальные значения N у меня колеблются в совсем других пределах.
Да, на x86 это скорее всего в присваивание развернётся - как я уже говорил, в x86 8 регистров
А если их будет 16 или, скажем, 64 - что-то кардинально изменится?
Суть в том, что присваивание нужно намного реже, чем это кажется.
И тем не менее, оно нужно. И когда оно мне понадобится, я могу случайно забыть про автодополнение, опечататься и получить трудновылавливаемый баг.
Исходная версия segfault, :
Сегодня твоя функция выводит код возврата 0..255, а завтра это развитая система обработки и логирования ошибок.
Еще раз спрошу - что может вызвать такую метаморфозу? Или ты сначала пишешь код системы, а потом принимаешься за ее проектирование?
мои варианты - только то, что надо и только так как надо.
Т.е. специализированый менеджер памяти? Так он и без GC даст прирост производительности.
в твоём коде изначальная непонятка с нулём, с которым ты всё и сравниваешь. Сравнивать нужно первый элемент с остальными.
При чистом поиске максимума - да. Но у меня эти уровни выбираются из списка неотрицательных констант, которые здесь я опустил. А int применяется как дефолтный тип в Си.
Я так бегло русский вариант просмотрел - вроде всё правильно написано. Явных ляпов как не странно нет.
Я тоже бегло прочитал, потом воспользовался поиском по странице - нигде ничего не написано про выделение памяти, только про освобождение.
Так вот, O(f(N)) это по определению время выполнения, делённое на константу, в случае если N стремится к бесконечности.
Если N стремится к бесконечности, любая возрастающая функция от него тождественно равна бесконечности. Так зачем же все-таки записывают функцию?
И запись O(f(N)) как раз и говорит, как это время зависит в пределе.
В каком пределе? В бесконечности? А зачем мне эта бесконечность, если реальные значения N у меня колеблются в совсем других пределах.
Да, на x86 это скорее всего в присваивание развернётся - как я уже говорил, в x86 8 регистров
А если их будет 16 или, скажем, 64 - что-то кардинально изменится?