Мы обсуждали асимптотический анализ , наихудшие, средние и наилучшие случаи , асимптотические обозначения и анализ циклов в предыдущих постах.
В этом посте обсуждаются практические задачи по анализу алгоритмов.
Задача 1: Найти сложность ниже повторения:
{ 3T(n-1), if n>0, T(n) = { 1, otherwise
Решение:
Let us solve using substitution. T(n) = 3T(n-1) = 3(3T(n-2)) = 32T(n-2) = 33T(n-3) ... ... = 3nT(n-n) = 3nT(0) = 3n This clearly shows that the complexity of this function is O(3n).
Задача 2: Найти сложность повторения:
{ 2T(n-1) - 1, if n>0, T(n) = { 1, otherwise
Решение:
Let us try solving this function with substitution. T(n) = 2T(n-1) - 1 = 2(2T(n-2)-1)-1 = 22(T(n-2)) - 2 - 1 = 22(2T(n-3)-1) - 2 - 1 = 23T(n-3) - 22 - 21 - 20 ..... ..... = 2nT(n-n) - 2n-1 - 2n-2 - 2n-3 ..... 22 - 21 - 20 = 2n - 2n-1 - 2n-2 - 2n-3 ..... 22 - 21 - 20 = 2n - (2n-1) [Note: 2n-1 + 2n-2 + ...... + 20 = 2n ] T(n) = 1 Time Complexity is O(1). Note that while the recurrence relation looks exponential the solution to the recurrence relation here gives a different result.
Задача 3: Найти сложность приведенной ниже программы:
|
Решение: рассмотрите комментарии в следующей функции.
|
Сложность времени вышеуказанной функции O (n). Хотя внутренний цикл ограничен n, но из-за оператора break он выполняется только один раз.
Задача 4: Найти сложность приведенной ниже программы:
|
Решение: рассмотрите комментарии в следующей функции.
|
Сложность времени вышеуказанной функции O (n log 2 n).
Задача 5: Найти сложность приведенной ниже программы:
|
Решение: рассмотрите комментарии в следующей функции.
|
Сложность времени вышеуказанной функции O (n 2 logn).
Задача 6: Найти сложность приведенной ниже программы:
|
Решение: мы можем определить термины 's' согласно соотношению s i = s i-1 + i. Значение 'i' увеличивается на единицу для каждой итерации. Значение, содержащееся в 's' на i- й итерации, является суммой первых положительных целых чисел 'i'. Если k — это общее количество итераций, выполненных программой, то цикл while завершается, если: 1 + 2 + 3…. + K = [k (k + 1) / 2]> n So k = O (√n).
Сложность времени указанной функции O (√n).
Задача 7: Найти жесткую верхнюю границу сложности приведенной ниже программы:
|
Решение: рассмотрите комментарии в следующей функции.
|
Сложность по времени вышеуказанной функции O (n 5 ).
Эта статья предоставлена г-ном Сомешем Авастхи . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Анализ алгоритмов | Набор 1 (Асимптотический анализ)
- Анализ алгоритмов | Набор 2 (худшие, средние и лучшие случаи)
- Анализ алгоритмов | Набор 3 (асимптотические обозначения)
- Анализ алгоритма | Набор 4 (решение повторений)
- Анализ алгоритмов | Набор 4 (анализ циклов)
- Анализ алгоритма | Набор 5 (Амортизированный анализ Введение)
- Алгоритм Практика Вопрос для начинающих | Комплект 1
- Псевдополиномиальные алгоритмы
- Асимптотический анализ и сравнение алгоритмов сортировки
- Анализ алгоритмов | немного о и немного омега обозначений
- Практические вопросы по анализу сложности времени
- Набор практики для рекуррентных отношений
- Анализ различных методов сортировки
- Инвариантное условие цикла с примерами алгоритмов сортировки
- Анализ алгоритмов | Big-O анализ
0.00 (0%) 0 votes