Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
5 / 3 / 2
Регистрация: 07.10.2020
Сообщений: 25
1

Подсчет сложности алгоритма

08.12.2020, 14:46. Показов 444. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, хочу посчитать асимптотическую сложность алгоритма:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
struct findInfo *Search(struct peer *user, uint32_t peer_count, char *string, uint32_t hashTableSize, int32_t **graph, uint32_t user_index)
{
    struct findInfo *list = infoListInit(peer_count);
    if (list == NULL)
    {
        return NULL;
    }
    uint16_t *visited = malloc((peer_count + 1) * sizeof(uint16_t));
    if (visited == NULL)
    {
        free(list);
        return NULL;
    }
    for (uint16_t i = 0; i < peer_count + 1; i++)
    {
        list->prev[i] = user_index;
        visited[i] = 0;
    }
    visited[0] = 1;
    heapnode Node;
    uint32_t currient_distance = 0;
    int8_t check = 0;
    uint32_t prev_id = user_index;
    heap *Heap = DHT_heapInit(graph[user_index], peer_count);
    if (Heap == NULL)
    {
        free(list);
        free(visited);
        return NULL;
    }
    list->prev[user_index] = user_index;
    while (Heap->nnodes != 0)
    {
        Node = heap_extract_min(Heap);
        currient_distance = Node.key;
        visited[Node.value] = 1;
        prev_id = Node.value;
        if (lookupInPeerClose(user + Node.value - 1, string, hashTableSize) == 1)
        {
            list->distance = currient_distance;
            list->index_peer = Node.value - 1;
            list->string = string;
            return list;
        }
        for (uint16_t j = 1; j <= peer_count; j++)
        {
 
            if (visited[j] == 0 && graph[Node.value - 1][j - 1] != -1)
            {
                check = heap_decrease_key(Heap, j, graph[Node.value - 1][j - 1] + currient_distance);
                if (check != -1)
                {
                    list->prev[j] = prev_id - 1;
                }
            }
        }
    }
    free(list);
    free(visited);
    free(Heap);
    return NULL;
}
Если коротко , то тут инициализация кучи с n узлами, потом цикл while, внутри него цикл for, внутри него работа с кучей. Верно ли получается что сложность равна O(n^2 log n + nlogn) = O(n^2 log n) . Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2020, 14:46
Ответы с готовыми решениями:

Оценка сложности алгоритма
народ хелп for(i=0; i&lt;N; i++) for(j=0; j&lt;N; j++) for(k=0; k&lt;N; k++) ...

Вычисление сложности алгоритма
1. Стандартный алгоритм вычисления количества отрицательных элементов одномерного числового массива...

Теоретическая оценка сложности алгоритма
Для курсовой работы мне нужно сравнить теоретическое время работы алгоритма с моим практическим. С...

Оценка вычислительной сложности алгоритма
Здравствуйте! Вот написал программу которая вычисляет максимальную сумму каждой последовательности...

0
08.12.2020, 14:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2020, 14:46
Помогаю со студенческими работами здесь

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

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

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

Придумать для задачи 2 алгоритма и сравнить их порядок сложности
Приветствую всех программистов! Начался, в общем, в универе такой предмет как &quot;алгоритмы и...

Придумать для задачи 2 алгоритма и сравнить их порядок сложности
Здравствуйте! В универе начали изучать такой прекрасный предмет как &quot;Структуры и алгоритмы данных&quot;...

Подсчет количества сравнений алгоритма поиска
Условие задачи: Дан одномерный массив А из n элементов. Определить, существует ли элемент, равный...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru