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

ALGORITHM

INTRODUCTION OF ALGORITHM

Uploaded by

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

ALGORITHM

INTRODUCTION OF ALGORITHM

Uploaded by

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

1. What is an Algorithm?

An algorithm is a step-by-step procedure or set of rules designed to perform a


specific task or solve a problem. It is like a recipe or a set of instructions that guides
the process of transforming inputs into outputs. In computer science, algorithms are
the foundation for solving problems efficiently.

In Simple Terms: An algorithm is a clear, logical process for solving a problem.

2. Characteristics of a Good Algorithm

For an algorithm to be effective, it should have the following properties:

Finiteness: An algorithm must have a finite number of steps. It should


eventually end after performing a set number of operations.


Definiteness: Each step in the algorithm should be precisely defined. There


should be no ambiguity in the instructions.


Input: An algorithm should have zero or more inputs, which are the initial
values or data the algorithm uses to work.


Output: An algorithm must produce at least one output, which is the result or
solution after the algorithm completes its steps.


Effectiveness: Each step must be basic enough to be carried out, in theory, by


a person using only paper and pencil.

3. Types of Algorithms
Algorithms can be classified into various types depending on their application:

Sorting Algorithms: These algorithms arrange a set of data in a particular


order (ascending or descending). Common sorting algorithms include:

o Bubble Sort
o Quick Sort
o Merge Sort
o Insertion Sort

Search Algorithms: These algorithms help find specific elements within a


dataset.


o Linear Search: Checks each element one by one.
o Binary Search: A more efficient method that works on sorted data by repeatedly
dividing the search space in half.

Recursive Algorithms: Algorithms that call themselves to solve a problem by


breaking it down into smaller sub-problems.

o Example: The factorial algorithm that calculates the product of all integers up to a
given number.

Greedy Algorithms: These algorithms make the best possible choice at each
step with the hope of finding the global optimum.

o Example: The coin change problem, where the algorithm picks the largest possible
coin at each step.

Dynamic Programming Algorithms: These break down a problem into


smaller overlapping sub-problems, solving each one just once and storing the
results for reuse.

o Example: The Fibonacci sequence.


Graph Algorithms: Algorithms used to solve problems involving networks


(graphs) such as finding the shortest path between two nodes.

o Example: Dijkstra’s algorithm for finding the shortest path in a graph.

4. Basic Example: Algorithm to Add Two Numbers

Let’s take a simple example of an algorithm to add two numbers:

1. Input: Two numbers, A and B.


2. Process: Add A and B.
3. Output: The sum of A and B.

This is an algorithm that can be written in steps like:

 Step 1: Take the first number (A).


 Step 2: Take the second number (B).
 Step 3: Add A and B together.
 Step 4: Output the result (sum of A and B).

5. Pseudocode and Flowcharts

When designing algorithms, it is helpful to use tools like pseudocode and flowcharts:

Pseudocode: A high-level description of an algorithm that combines natural


language and programming-like structures. It is used to express algorithms
without worrying about specific syntax.

css
Copy code

Start
Read input A, B
Sum = A + B
Print Sum
End

Flowchart: A visual representation of an algorithm using symbols like


rectangles (for processes), diamonds (for decisions), and arrows (to indicate
flow).

css

Copy code

Start → Input A, B → Add A and B → Output Sum → End


6. Complexity of Algorithms

Algorithms are often evaluated based on their time complexity and space
complexity. These metrics describe the efficiency of an algorithm in terms of how
fast it executes (time) and how much memory it uses (space).

Time Complexity: Describes how the runtime of an algorithm grows with the
size of the input. Common time complexities include:

o O(1): Constant time (the algorithm takes the same time regardless of the input size).
o O(n): Linear time (the algorithm’s runtime increases proportionally to the input size).
o O(n²): Quadratic time (commonly seen in algorithms that involve nested loops).

Space Complexity: Describes how much memory an algorithm uses relative


to the input size. Like time complexity, it can be expressed using Big O
notation.

Example:

 Bubble Sort has a time complexity of O(n²), while Merge Sort has a time complexity of O(n
log n), making Merge Sort more efficient for large datasets.

7. Example Algorithm: Binary Search

Binary search is a very efficient algorithm for finding an element in a sorted array.

Steps:

1. Input: A sorted array and a target value.


2. Process:

o Find the middle element of the array.


o If the middle element is the target, return the index.
o If the target is smaller than the middle element, repeat the search on the left half of
the array.
o If the target is larger, repeat the search on the right half.

3. Output: The index of the target element or a message indicating that the element is not
found.
Pseudocode:

vbnet
Copy code
Start
Set low to 0
Set high to length of array - 1
While low <= high:
mid = (low + high) / 2
If array[mid] == target:
Return mid
Else If array[mid] < target:
low = mid + 1
Else:
high = mid - 1
Return "Not found"End

Time Complexity: O(log n), because the algorithm cuts the search space in half each
time.

8. Why are Algorithms Important?

Algorithms are fundamental to solving problems in computer science and technology.


Their design and analysis are crucial for:

 Efficiency: An efficient algorithm can save both time and resources, making processes faster
and less resource-intensive.
 Scalability: As data grows, well-designed algorithms ensure that systems can handle larger
workloads without significant slowdowns.
 Automation: Algorithms enable automation in tasks like data processing, image recognition,
and decision-making.

9. Conclusion

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


Whether in software development, mathematics, or everyday problem-solving,
algorithms help break complex tasks into simpler, manageable steps. Understanding
how to design, analyze, and implement algorithms is essential for any programmer
or computer scientist.

You might also like