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

algorithm assign

Uploaded by

samueljacso573
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

algorithm assign

Uploaded by

samueljacso573
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

UNIVERSITY OF GONDAR

INSTITUTE OF TECHNOLOGY
Department of Computer Engineering
Algorithm analysis and design Assignment
• NAME ID

SAMUEL TESHALE............................03077/14

submitted to M.r Matiwos G.


Submitted date 04/04/2017
what is algorithm ?
• An algorithm is a set of instructions or rules that are followed to complete a task
or solve a problem.An algorithm is a series of steps that takes one or more inputs,
runs them through a systematic process, and produces one or more outputs.

• TYPES OF ALGORITHM AND THIERE APPLICATION AREA


Recursion Algorithm and it’s application area
• A recursive algorithm is a programming technique that solves a problem by breaking it
down into smaller, more manageable subproblems and calling itself to solve each
subproblem. This process continues until the problem is simple enough to be solved
directly.

1,APPLICATION AREA OF RECURSIVE ALGORITHM


• Recursive algorithms have many applications, including:
• Sorting
• Recursive algorithms are used in sorting algorithms like merge sort and quick sort.
• Searching
• Recursive algorithms are used in searching algorithms like binary search.
• String manipulation
• Recursive algorithms are used to check if two strings are anagrams or find the longest
common subsequence between two strings.
continue...
• Mathematical computations
• Recursive algorithms are used to compute factorials and generate Fibonacci numbers.
• Tree and graph traversals
• Recursive algorithms are used to visit nodes in a tree data structure and explore all possible paths in a graph.
• Dynamic programming
• Recursive algorithms with memoization store the results of subproblems to avoid redundant calculations.
• Divide and conquer algorithms
• Recursive algorithms are used to multiply matrices by breaking them down into smaller submatrices.
• AI
• Recursive algorithms are the backbone of AI.
• Windows Paint
• Recursive algorithms are used to fill color in a particular area of a drawing or model.
• Recursive algorithms are a problem-solving approach that breaks down problems into smaller subproblems. They
can make coding certain tasks simpler and cleaner, improving the readability and understanding of the code
Searching algorithm
• A searching algorithm is a sequence of instructions that helps find information in
a data structure or search space
• APPLICATION AREA OF SEARCHING ALGORITHM
• ORITHMSearching algorithms have many applications, including:
• Finding items in lists or databases: Searching algorithms can find items in lists or
databases by searching for a specific item.
• Searching for words or phrases in documents: Searching algorithms can search
for words or phrases in documents.
• Finding locations on maps: Searching algorithms can find locations on maps.
• Internet search engines: Searching algorithms are used in internet search engines
to find relevant web pages based on keywords.
continue...

• Machine learning: Binary search is a backbone for developing machine learning


applications.
• Computer graphics: Binary search is a backbone for developing computer
graphics applications.
• Database systems: Binary search is a backbone for developing database systems
applications.
• String matching: Aho-Corasick algorithm is used in string matching, particularly in
text processing applications like keyword searching and pattern recognition.
• Sequence alignment: Suffix arrays are used in bioinformatics for sequence
alignment and string matching in genomic data.
Sorting algorithm
• A sorting algorithm is a set of instructions that arranges a list or array of items
into a specific order.
• APPLICATION AREA OF SORTING ALGORITHM
• Sorting algorithms have many applications, including:
• E-commerce: Sorting algorithms help users find products based on price,
popularity, or other factors.
• Databases: Sorting algorithms help organize large datasets and make them more
accessible.
• Medical records: Sorting algorithms help organize patient records and make
them more accessible.
• Computer graphics: Sorting algorithms are used for image rendering and data
visualization.
• Numerical computations: Sorting algorithms are used for matrix sorting.
Bubble sort algorithm
• Bubble sort is a basic algorithm that arranges a list of data into order by comparing
adjacent elements and swapping them if they are out of order
• APPLICATION AREA OF BUBBLE SORT ALGORITHM
• Bubble sort is a sorting algorithm that has a few common applications, including:
• Teaching sorting
• Bubble sort is a simple algorithm that's often used to teach the basics of sorting to new
programmers and computer science students.
• Sorting small datasets
• Bubble sort is ideal for sorting small datasets with a few elements. It's not optimal for large
datasets because it has to repeatedly cycle through the entire set of elements.
• Checking for orderly datasets
• Bubble sort can be used to arrange a dataset that's already sorted but requires a final check
to verify that the elements are in the correct order.
• Testing and debugging other sorting algorithms
• Bubble sort can be used to test and debug other sorting algorithms by serving as a simple
and straightforward reference point.
continue...

• Some real-world examples of bubble sort include how the contact list on your
phone is sorted in alphabetical order, or the sorting of files on your phone
according to the time they were added.
selection sorting algorithm
• the selection sort algorithm organises a list of an array by constantly discovering the minimum component
(assuming ascending order) from the unsorted part and placing it at the starting point. The algorithm is very
simple and popular. However, it is not appropriate for extensive data sets.
• APPLICATION AREA OF SELECTION SORT ALGORITHM
• The selection sort algorithm has several applications, including:
• Small datasets
• Selection sort is effective for sorting small arrays or lists because it's simple and easy to implement.
• Limited memory
• Selection sort is an in-place sorting algorithm with a space complexity of O(1), making it suitable for
environments with limited memory.
• Costly writing to memory
• Selection sort is advantageous in scenarios where writing to memory is more expensive than reading, such as
with flash memory or EEPROM.
• Initial pass
• Selection sort can be used as the initial pass in more complex sorting algorithms.
continue...
• Educational tool
• Selection sort is a valuable tool for teaching the fundamentals of sorting
algorithms.
• Selection Sort in Data Structures
• Selection sort is a straightforward algorithm that works by repeatedly finding
the smallest element from the unsorted portion of a list and placing it at the
beginning.
heap algorithm
• A heap is a tree-based data structure with specific properties that is used in
many algorithms
• APPLICATION AREA OF HEAPS
• Heaps are used in many applications in computer science, including:
• Priority queues
• Heaps are used to implement priority queues, which allow for the insertion,
deletion, and identification of the highest priority element in O(log N) time. For
example, a priority queue could be used to give priority to customers with short
wait times.
• Graph algorithms
• Heaps are used in many graph algorithms, including Dijkstra's algorithm for
finding the shortest path, Huffman coding, and the BFS algorithm.
continue...
• Finding the smallest or largest element in an array
• A min-heap tree is used to find the smallest element in an array, and a max-
heap tree is used to find the largest element.
• Heap sort
• The heap sort algorithm is used in systems concerned with security and
embedded systems, such as the Linux Kernel.
• Applications of Heap data structures | Heap | Prepbytes
• Heaps are data structures that are typically represented as lists, structures, or
trees. They are used to store other objects, and are suitable for objects or data
whose size might change at runtime
hash algorithm
• A hash algorithm is a mathematical function that scrambles data into an
unreadable, fixed-length output called a hash value. Hash algorithms are also
known as hash functions.
• APPLICATION AREA OF HASH ALGORITHM
• Data indexing and retrieval: Hashing is a cornerstone concept in computer
science that makes it efficient to retrieve data from large datasets and
databases.
• Authentication: Hashing algorithms can be used for digital signatures, message
authentication codes (MACs), and other forms of authentication.
• Verifying the integrity of messages and files. An important application of secure
hashes is the verification of message integrity. ...
• Signature generation and verification. ...
• Password verification. ...
• Proof-of-work. ...
• File or data identifier.
greedy algorithm
• a greedy algorithm is an algorithm that finds a solution to problems in the
shortest time possible. It picks the path that seems optimal at the moment
without regard for the overall optimization of the solution that would be
formed
• APPLICATION AREA OF GREEDY ALGORITHM
• Greedy algorithms are used in many applications, including:
• Optimization problems
• Greedy algorithms are used to solve problems that involve finding the
minimum or maximum of something, such as the shortest path, the largest
profit, or the smallest cost. Examples of optimization problems that can be
solved using greedy algorithms include the knapsack problem, job scheduling
problem, and activity selection problem.
• Constructing minimum spanning trees
• Prim's and Kruskal's algorithms are greedy algorithms used to construct
minimum spanning trees.
continue...
• Huffman encoding
• A greedy algorithm is used to build a Huffman tree that compresses a given
image, spreadsheet, or video into a lossless compressed file.
• Decision tree learning
• Greedy algorithms are commonly used in decision tree learning, although they
are not guaranteed to find the optimal solution.
graph algorithm
• A graph algorithm is a set of instructions that manipulate graph data structures
to solve problems or perform tasks. Graphs are made up of nodes and edges
that represent entities and relationships, respectively.
• APPLICATION AREA OF GRAPH ALGORITHM
• Graph algorithms have many applications, including:
• Transportation planning: Graph algorithms are used to calculate the shortest
paths between nodes in a graph, such as in Google Maps.
• Social network analysis: Graph algorithms can be used to find degrees of
separation between users, suggest potential friends, and detect communities.
• Bioinformatics: Graph algorithms are used in DNA analysis.
• Equilibrium analysis: Graph algorithms can be used to analyze equilibrium
outcomes in games, such as identifying influential players.
• Machine learning: Graph algorithms can be used in machine learning models.
continue...
• Blockchain: Graph algorithms can be used to model blockchains, where
vertices are blocks and edges connect the blocks.
• Bitcoin creation graphs: Graph algorithms can be used to model the flow of
money between Bitcoin wallets.
• Graph algorithms are computational procedures that operate on graph
structures, which are made up of nodes and edges. Graphs are a valuable tool
for modeling real-world data in many fields, including economics, mathematics,
physics, and aeronautics
Backtracking Algorithm
• A backtracking algorithm is a technique that finds solutions to problems by exploring all possible combinations
and discarding those that don't meet the problem's constraints. It's based on the Depth First Search (DFS)
approach.
• APPLICATION AREA OF BACKTRACKING ALGORITHM
• Backtracking algorithms are used in many applications, including:
• Puzzle solving
• Backtracking is used to solve puzzles like Sudoku, crosswords, and the N-Queens problem.
• Pathfinding
• Backtracking can be used to find optimal paths in graphs or solve mazes.
• Game playing
• Backtracking can be used to evaluate possible moves in board games like chess or to explore possible moves in
strategy games.
• Combinatorial optimization
• Backtracking can be used to generate all permutations, combinations, and subsets of a given set.
continue...
• Constraint satisfaction problems
• Backtracking can be used in problems like graph coloring, scheduling, and job assignment.
• Decision-making
• Backtracking can be used to help make optimal decisions in situations where multiple choices are
possible.
• String processing
• Backtracking can be used to generate valid strings that meet certain criteria.
• Optimization problems
• Backtracking can be used to find solutions to complex optimization problems.
• Verifying other algorithms
• Backtracking can be used to verify the correctness and efficiency of other algorithms.
• Backtracking algorithms work by building a solution step by step using recursion. If it's determined that
the solution isn't valid, the algorithm backtracks to the previous step.
END OF ASSIGNMENT

• THANK YOU.

You might also like