powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Эталон измерения цены на плюсах
7 сообщений из 7, страница 1 из 1
Эталон измерения цены на плюсах
    #38363157
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такое понятие как сложность алгоритма относительно n-элементов на входе.
Самая простая техника подсчета сложности - посчитать кол-во циклов и сколько их вложено вдруг в друга.

Но, бывает нам поставляются функции, к которым мы не можем глянуть под капот, но они являются кирпичиками наших алгоритмов, которые для нас являются критическими, то есть для которых мы хотим посчитать цену.

Ну самое типичное классическое попадалово objList.numberOfItems(). const или linear? бывают дурацкие инструменты, где такое есть линеар...

- - - - - - - - -

Классическим инструментом проверки цены функции является итерлям:

Код: plaintext
1.
profmark(); for(int i = 0; i < 1000 * 1000; i++) func(); profmark().print();



Вопрос: какая операция в плюсах может считаться единицей измерения функциональной операции?

Все знают, что sizeof измеряет в char'ах. А что может быть чаром для измерения количества операций. Что может быть попугаем в данном случае?

Бонусный вопрос: является ли подобное операцией вообще?

Код: plaintext
1.
a = a; // для int a = 5;
...
Рейтинг: 0 / 0
Эталон измерения цены на плюсах
    #38363548
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix
Вопрос: какая операция в плюсах может считаться единицей измерения функциональной операции?



В плюсах, так же, как и в любом другом языке, такой операции нет.
Операция выбирается каждый раз в зависимости от алгоритма, который оценивается.
Например:

Алгоритм "сотрировка" -- операция "ставнение двух элементов" (обычно).

Алгоритм "поиск элемента в коллекции" -- операция "сравнение элемента коллекции и искомого".

Алгоритм "подсчёт элементов коллекции" -- операция "чтение элемента коллекции".

И так далее.
...
Рейтинг: 0 / 0
Эталон измерения цены на плюсах
    #38363552
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix
Бонусный вопрос: является ли подобное операцией вообще?

Код: plaintext
1.
a = a; // для int a = 5;



Это я не понял.

Конечно, присваивание в С++ является операцией.
...
Рейтинг: 0 / 0
Эталон измерения цены на плюсах
    #38363672
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivОперация выбирается каждый раз в зависимости от алгоритма, который оценивается.
Например:

Алгоритм "сотрировка" -- операция "ставнение двух элементов" (обычно).

Алгоритм "поиск элемента в коллекции" -- операция "сравнение элемента коллекции и искомого".

Алгоритм "подсчёт элементов коллекции" -- операция "чтение элемента коллекции".

И так далее.


Понятно, спасибо.
...
Рейтинг: 0 / 0
Эталон измерения цены на плюсах
    #38363778
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, тупо померять время работы на N=1,2,4,...10500 и потом построить график зависимости
нынче некошерно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Эталон измерения цены на плюсах
    #38363786
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА что, тупо померять время работы ...Lumix он такой - простых путей не ищет.
...
Рейтинг: 0 / 0
Эталон измерения цены на плюсах
    #38364445
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА что, тупо померять время работы на N=1,2,4,...10500 и потом построить график зависимости
нынче некошерно?


Этот метод замера дает оценку комплексити алгоритма. А вопрос темы был про поиск единицы измерения комплексити для плюсов.

Пример, у нас есть два алгоритма (две функции) про которые мы знаем, что они обе обладают линейной комплексити.

Но если у нас есть некая единица измерения (аналог sizeof), то мы можем сказать, что стоимость первой функции 5 попугаев, а стоимость второй функции 35 попугаев. Хотя обе они линейны.

Существует формулировка, которая позволяет нам сказать, что несмотря на на то, что обе функции линейны по комплексити, первая стоит 5n, а вторая стоит 35n, но в этой теме мне сказали, что n для каждой функции всегда будет свое. Например, она функция перебирает инты, а другая строки. Обе могут быть 5n, но первая будет стоит всего 5 попугаев, а вторая целых 75 попугаев.

Вот про что был вопрос.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Эталон измерения цены на плюсах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]