cristian9217

Understanding Analysis Algorithms

CECS 6010 - ADVANCED DESIGN AND ANALYSIS OF ALGORITHM


Objective: To understand of advanced algorithms methods, their concepts, and how they are used to engaging computational issues.

The main.py file provides a menu to select and explore different sorting algorithms. It allows users to visualize and understand how various sorting methods work by processing a given string.

  1. Analyze Sorting Algorithms: This program analyzes sorting algorithms, which are implemented in the file sorting.py for string.
  1. Analyze Searching Algorithms: This program analyzes searching algortihms, which are implemented in the file searching.py for integer numbers.
  1. Determine order of growth for a given recurrence: Determines the order of growth for a given recurrence which are implemented in the file recurrences.py by accepting three integer inputs: a, b and d.

a: A integer number positive greather than 1.
b: A integer number positive greather than 1.
d: A integer number positive greather than 1.

Since the inputs a, b, and d have been validate, we will apply the master theorem which states:

Based on the recurrence, this figures out the asymptotic behavior of recursive algorithms.

  1. Apply binary exponentation: This program analyzes effective algorithm that uses binary representation to divide the exponentiation process into a number of smaller, more manageable steps in order to compute large powers of a number. The file binary_exponentiation.py contains implementations for binary exponentiation algorithms.

The program applies two (2) methods of binary exponentiation:

  1. Apply Horspool’s algorithm
    • To search words: In the string search algorithm that effectively looks for a pattern in a text by calculating how much to shift the pattern upon a mismatch using a shift table.

The required input to this function:

  1. Exit: This option allows you to exit the program.

Solution: This solution includes multiple Python files that implement various algorithms for solving problems related to sorting, searching, and exponentiation.