0% found this document useful (0 votes)
9 views

Algorithms

Uploaded by

Aakanksha Arora
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Algorithms

Uploaded by

Aakanksha Arora
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Definition of an Algorithm

An algorithm is a step-by-step, well-defined procedure for solving a problem


or performing a task. Algorithms are used in various fields like computer
science, mathematics, and data processing to achieve specific outcomes
efficiently.

Characteristics of a Good Algorithm

Finiteness: Must terminate after a finite number of steps.

Definiteness: Each step must be clear and unambiguous.

Input: Can accept zero or more inputs.

Output: Must produce at least one output.

Effectiveness: Each step should be basic enough to be carried out manually


or by a machine.

Types of Algorithms

Brute Force: Simple and straightforward, trying all possible solutions.

Example: Linear search.

Divide and Conquer: Breaks the problem into smaller sub-problems, solves
them independently, and combines the results.

Example: Merge Sort, Quick Sort.

Greedy Algorithm: Makes the best local choice at each step, aiming for a
global optimum.

Example: Dijkstra’s Algorithm.

Dynamic Programming: Solves sub-problems and stores the results to avoid


redundant calculations.

Example: Fibonacci sequence, Knapsack Problem.


Backtracking: Tries all possibilities and backtracks upon failure to find the
correct solution.

Example: N-Queens problem, Sudoku Solver.

Recursive Algorithm: Solves problems by calling itself with modified inputs.

Example: Factorial, Tower of Hanoi.

Common Algorithmic Problems

Sorting Algorithms:

Bubble Sort: Compares adjacent elements and swaps if necessary.

Merge Sort: Uses divide and conquer to sort.

Quick Sort: Partitions the array into subarrays and sorts recursively.

Searching Algorithms:

Linear Search: Sequentially checks each element.

Binary Search: Divides the sorted list and searches in halves.

Graph Algorithms:

Depth-First Search (DFS): Explores as deep as possible along a branch before


backtracking.

Breadth-First Search (BFS): Explores all neighbors at the current depth before
moving deeper.

Time Complexity

Time complexity refers to how the execution time of an algorithm increases


with input size.

Big O Notation: Describes the upper limit of an algorithm’s runtime.


O(1): Constant time.

O(log n): Logarithmic time.

O(n): Linear time.

O(n log n): Log-linear time.

O(n²): Quadratic time.

Space Complexity

Space complexity refers to the amount of memory an algorithm needs


relative to the input size.

Examples

Factorial Algorithm (Recursive)

def factorial(n):

if n == 0:

return 1

else:

return n * factorial(n - 1)

Binary Search Algorithm

def binary_search(arr, target):

left, right = 0, len(arr) - 1

while left <= right:

mid = (left + right) // 2

if arr[mid] == target:

return mid

elif arr[mid] < target:

left = mid + 1
else:

right = mid - 1

return -1

Applications of Algorithms

Search Engines: Use search algorithms to retrieve relevant data.

Data Compression: Algorithms like Huffman coding reduce data size.

Machine Learning: Uses algorithms to build predictive models.

Cryptography: Ensures secure data communication using encryption


algorithms.

You might also like