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

Оценка эффективности различных алгоритмов

11.06.2020, 16:18. Показов 1793. Ответов 0

Author24 — интернет-сервис помощи студентам
Сортировка Шелла. Как теоретически сравнить полученные значения (количество присваиваний), чтобы убедиться в правильности программы.
Корректно ли будет, если сравнивать так

Массив N1=10.000 эл
--------------------
основные присваивания - 255675
вспомогательные - 255688

Массив N2=30.000 эл
--------------------
основные присваивания - 861776
вспомогательные - 861790

Сравним N1 и N2

255675/255688=0,99
861776/861790=0,99

Трудоемкость: O(n^3)

10.000*10.000*10.000=1.000.000.000.000
30.000*30.000*30.000=27.000.000.000.000
1.000.000.000.000/27.000.000.000.000=0,04
Значения не совпадают..

C++ (Qt)
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
void ShellSort (int * a, int n) {    /*шаг задается формулой h[t]=1, h[m-1]=2h[m]+1; t=log2(n)-1*/
    v=0; l=0;
    const int T = (int)(log(n) / log(2)) - 1;
    int j, p, x, k, i;
    int *h = new int[T];
    h[T-1] = 1;
    for (k = T-1; k >= 0; k--)
        h[k - 1] = h[k] * 2 + 1;
 
    for (k = 0, l++; k < T; k++, l++)        // последовательно перебираем все расстояния
    {
        p = h[k];
        v++;
        for (i = p, l++; i < n; i++, l++)      // до конца цикла метод вставки с учетом шага h[k]
        {
            x = a[i];
            j = i - p;
            l++;
 
            while (j >= 0 && x > a[j])
            {
                a[j+p] = a[j];
                j -= p;
                v++;
                l++;
            }
            a[j+p] = x;
            v+=2;
        }
    }
 
    cout << v << " основных и " << l << " вспомогательных" << endl;
 
    delete[] h;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2020, 16:18
Ответы с готовыми решениями:

Оценка скорости работы алгоритмов сортировки
Создайте массив из 10 000 элементов, заполните случайными значениями от 0 до 10 000. Измерьте...

Оценка эффективности кода
Нужно сравнить эффективность двух алгоритмов. Первое что пришло в голову - тик-так'ом. Есть ли в...

Оценка эффективности рекламы
Оценка эффективности рекламы

Оценка эффективности мод
Купил морды - все проиндексировались и показываются у меня в бэках. Если сортировать беки в яндексе...

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

Оценка эффективности хеш функции
В общем такой вопрос. Мы в универе сделали хеш функцию. Препод говорил что надо сделать...

Методы сортировки, оценка их эффективности
Выберите любые 3 метода сортировки и оцените их эффективность по времени. Для этого оформите методы...

количественная оценка эффективности Директа
Я новичек, и многое мне не понятно, спасибо за понимание. Тут многие говорят о том сколько заказов...

Анализ временной эффективности алгоритмов
Дана целочисленная квадратная матрица. Найти сумму модулей элементов, расположенных выше главной...

Исследование эффективности алгоритмов сортировки
Разработать программу, определяющую какое время требуется для сортировки с помощью каждого из трех...

Сравнение эффективности двух алгоритмов
Доброго времени суток. Суть моего вопроса вот в следующем... Есть задача: Напишите функцию...


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

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