Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331

Определение алгоритмической сложности функции

06.11.2016, 16:36. Показов 1112. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно определить алгоритмическую сложность какой нибудь функции? Ну подсчитать количество присваиваний и других операций и определить сколько времени они займут.

Добавлено через 2 часа 34 минуты
Есть для этого какие нибудь toolsы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.11.2016, 16:36
Ответы с готовыми решениями:

Определение сложности алгоритма
Составить блок-схему, составить программу и определить её сложность. Записать алгоритм сортировки в таблице чисел A методом включений....

Определение сложности алгоритма
Дана прямоугольная таблица А. Составить алгоритм,который определял бы номер строк таблицы, начинающих с одинаковых чисел, и подсчитывал бы...

Определение сложности алгоритма / Pascal
Доброго времени суток. Есть такой код: type mas = array of integer; procedure InsertSort(var a:mas); var i,j,k,x:integer; begin...

8
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
06.11.2016, 16:49
yura91, алгоритмическая сложность не определяет сколько времени что займет. Так же она не применяется к ф-циям, а к алгоритмам. Кол-во присваиваний не влияет на сложность алгоритма.
Как расчитывать сложность можно легко нагуглить
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
06.11.2016, 21:32  [ТС]
А как вообще определить сколько времени будет выполнятся определенная функция? Ну скажем я написал какую то функцию и хочу определить время ее выполнения при вызове, как это лучше сделать? И количество присваиваний влияет на время выполнения функции?? Можете пояснить.
0
11 / 11 / 4
Регистрация: 22.09.2016
Сообщений: 90
06.11.2016, 21:37
Цитата Сообщение от yura91 Посмотреть сообщение
А как вообще определить сколько времени будет выполнятся определенная функция
Вводите переменную в начале программы, присваиваете ей текущее время, и вторую переменную в конце - и ей текущее время. Вторая минус первая - время выполнения вашей программы.

Цитата Сообщение от yura91 Посмотреть сообщение
И количество присваиваний влияет на время вполнения функции?
смотря что, как и куда присваивать. Если у вас 2 массива дуриллионой длины, и вы каждому каждое присваиваете, непонятно зачем - конечно это повлияет на время выполнения.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
06.11.2016, 21:38
Цитата Сообщение от yura91 Посмотреть сообщение
А как вообще определить сколько времени будет выполнятся определенная функция?
Заранее никак. Быстрота выполнения зависит от мощности системы.

Цитата Сообщение от yura91 Посмотреть сообщение
Ну скажем я написал какую то функцию и хочу определить время ее выполнения
можно засечь время вначале и в конце, но там множество ньюансов поэтому скорее всего вы получите неверные результаты или неверно их поймете.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
06.11.2016, 22:47  [ТС]
можно засечь время вначале и в конце, но там множество ньюансов поэтому скорее всего вы получите неверные результаты или неверно их поймете.
А какие нюансы можете объяснить если не сложно?
0
11 / 11 / 4
Регистрация: 22.09.2016
Сообщений: 90
06.11.2016, 23:04
Цитата Сообщение от yura91 Посмотреть сообщение
нюансы
Какие тут нюансы?)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Main {
 
    public static void main(String[] args) {
 
        double a = System.nanoTime();
 
        //тут ваш код, какой угодно, например:
        int x = 0;
        for(int i = 0; i<10000000; i++){
            x++;
        }
 
        double b = System.nanoTime();
        System.out.println("Время выполнения программы в наносекундах: " + (b-a));
    }
}
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
07.11.2016, 00:52
Цитата Сообщение от Serg4356 Посмотреть сообщение
Какие тут нюансы
Для демонстрации самого очевидного и простого, возьмите свой код, запустите его 100 раз в цикле и выполните замер только последней итерации

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Main {
     
    public static void main(String[] args) {
 
        double res = 0;
        for(int k=0;k<100; k++) {
            double a = System.nanoTime();
     
            //тут ваш код, какой угодно, например:
            int x = 0;
            for(int i = 0; i<10000000; i++){
                x++;
            }
     
            double b = System.nanoTime();
            res = b-a;
        }
        
        System.out.println("Время выполнения программы в наносекундах: " + res);
    }
}
Думаю результат вас удивит.

Добавлено через 2 минуты
Цитата Сообщение от yura91 Посмотреть сообщение
А какие нюансы можете объяснить если не сложно?
было бы несложно, объяснил, но микробенчмаркинг это сложная тема и уж точно не для новичков. Достаточно посмотреть на пример выше.
1
11 / 11 / 4
Регистрация: 22.09.2016
Сообщений: 90
07.11.2016, 19:51
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
Думаю результат вас удивит.
удивил. больше не вякаю тем более есть чем занять вечер - гуглить микробенчмаркинг
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2016, 19:51
Помогаю со студенческими работами здесь

О символика (определение временной сложности алгоритма)
S:=0; For i:=1 to n*2 do begin s:=s+A; For j:=1 to n - 2 do begin s:=s+A; For k:=1 to n-3 do s:=s+A; end; end; For m:=1 to n -...

Определение временной сложности алгоритма (О символика)
Procedure R(n, x : integer); Var i, j :integer; begin S:=0; For i:=1 to 2*n do if a &gt; х then For j:=1 to n*n...

Определение временной сложности рекурсивного алгоритма
Добрый день, подскажите, пожалуйста, как определять временную сложность у алгоритма такого вида, и чему она будет равна. И где можно об...

Функции сложности
Объясните как как это делать?Буду очень благодарен.

Сложности с минимизацией функции
Добрый день. Нужно минимизировать функцию F({x}_{1}, {x}_{2}, {x}_{3}, {x}_{4}) = !{x}_{0}!{x}_{1}!{x}_{2}{x}_{3} \vee ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru