Алгоритм описанный на языке программирования

Алгоритм на языке Си
Алгоритм на языке Си

Алгоритм-это пошаговая процедура, которая определяет набор инструкций. Которые должны быть выполнены в определенном порядке для получения желаемого результата. Алгоритмы обычно создаются независимо от базовых языков. То есть алгоритм может быть реализован более чем на одном языке программирования.

С точки зрения структуры данных ниже приведены некоторые важные категории алгоритмов:

  • Поиск − Алгоритм поиска элемента в структуре данных.
  • Сортировка − Алгоритм сортировки элементов в определенном порядке.
  • Insert − Алгоритм вставки элемента в структуру данных.
  • Update − Алгоритм обновления существующего элемента в структуре данных.

  • Delete − Алгоритм удаления существующего элемента из структуры данных.

Характеристики алгоритма

Не все процедуры можно назвать алгоритмом. Алгоритм должен иметь следующие характеристики −

  • Однозначный − Алгоритм должен быть четким и однозначным. Каждый из его шагов (или фаз), а также их входы/выходы должны быть понятны и должны вести только к одному значению.
  • Вход − Алгоритм должен иметь 0 или более четко определенных входов.
  • Выход − Алгоритм должен иметь 1 или более четко определенных выходов и должен соответствовать желаемому выходу.

  • Конечность − Алгоритмы должны завершаться после конечного числа шагов.
  • Осуществимость − должна быть осуществима при имеющихся ресурсах.
  • Независимый − Алгоритм должен иметь пошаговые направления, которые должны быть независимы от любого программного кода.

Как написать алгоритм?

Не существует четко определенных стандартов для написания алгоритмов. Скорее, она зависит от проблем и ресурсов. Алгоритмы никогда не пишутся для поддержки определенного программного кода.

Как мы знаем, все языки программирования имеют общие базовые кодовые конструкции, такие как циклы (do, for, while). Управление потоком (if-else) и т. Д.

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

Мы пишем алгоритмы шаг за шагом, но это не всегда так. Написание алгоритма — это процесс, который выполняется после того, как проблемная область четко определена. То есть мы должны знать проблемную область, для которой разрабатываем решение.

Пример

Давайте попробуем изучить написание алгоритмов на примере.

Задача − Разработать алгоритм сложения двух чисел и отображения результата.

Шаг 1 − НАЧАЛО

Шаг 2 − объявите три целых числа a, b и c

Шаг 3 − определите значения a & b

Шаг 4 − добавление значений a & b

Шаг 5 − сохранение выходных данных шага 4 в

c

Шаг 6 − печать c

Шаг 7 − СТОП

Алгоритмы говорят программистам, как кодировать программу. В качестве альтернативы алгоритм может быть записан в виде:

Шаг 1 − НАЧНИТЕ ДОБАВЛЯТЬ

Шаг 2 − получить значения a & b

Шаг 3 − c ← a + b

Шаг 4 − дисплей c

Шаг 5 − СТОП

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

Написание номеров шагов, является необязательным.

Мы разрабатываем алгоритм для получения решения данной задачи.

Проблему можно решить несколькими способами.одна проблема много решений

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

Анализ алгоритмов

Эффективность алгоритма может быть проанализирована на двух различных этапах, до и после реализации. Они следующие −

  • Априорный анализ − это теоретический анализ алгоритма. Эффективность алгоритма измеряется предположением, что все остальные факторы, например, скорость процессора. Постоянны и не влияют на реализацию.

  • Апостериорный анализ − это эмпирический анализ алгоритма. Выбранный алгоритм реализован с использованием языка программирования. Затем это выполняется на целевом компьютере. В этом анализе собираются фактические статистические данные, такие как время выполнения и требуемое пространство.

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

Сложность алгоритма

Предположим, что X-это алгоритм, а n-размер входных данных, время и пространство, используемые алгоритмом X. Являются двумя основными факторами. Определяющими эффективность X.

  • Фактор времени − Время измеряется путем подсчета количества ключевых операций. Таких как сравнения в алгоритме сортировки.
  • Пространственный фактор − Пространство измеряется путем подсчета максимального объема памяти, требуемого алгоритмом.

Сложность алгоритма f(n) дает время выполнения и/или пространство хранения. Необходимое алгоритму в терминах n как размер входных данных.

Сложность пространства

Пространственная сложность алгоритма представляет собой объем памяти, необходимый алгоритму в его жизненном цикле.

Пространство, требуемое алгоритмом, равно сумме следующих двух составляющих:

  • Фиксированная часть, представляющая собой пространство, необходимое для хранения определенных данных и переменных. Которые не зависят от размера задачи. Например, используемые простые переменные и константы, размер программы и т. Д.
  • Переменная часть — это пространство, необходимое переменным, размер которого зависит от размера задачи. Например, динамическое выделение памяти, рекурсивное пространство стека и т. Д.

Пространственная сложность S(P) любого алгоритма P равна S(P) = C + SP(I), где C −фиксированная часть. А S(I) — переменная часть алгоритма. Которая зависит от характеристики экземпляра I. Ниже приведен простой пример. Который пытается объяснить концепцию —

Алгоритм: SUM(A, B)

Шаг 1 – ЗАПУСК

Шаг 2 – C ← A + B + 10

Шаг 3 – Стоп

Здесь мы имеем три переменные A, B и C и одну константу. Следовательно. S(P) = 1 + 3. Теперь пространство зависит от типов данных заданных переменных и постоянных типов и будет умножаться соответственно.

Временная сложность

Временная сложность алгоритма представляет собой количество времени. Необходимое алгоритму для выполнения до завершения. Требования к времени могут быть определены как числовая функция T(n). Где T(n) может быть измерено как количество шагов. При условии. Что каждый шаг потребляет постоянное время.

Например, сложение двух n-разрядных целых чисел занимает n шагов. Следовательно, общее вычислительное время равно T(n) = c ∗ n, где c-время, затраченное на сложение двух битов. Здесь мы наблюдаем, что T(n) растет линейно по мере увеличения входного размера.

учебник по языку c изучение языка c изучение языка c