Data has been revolutionalized with the creation of computers.It is important as ever for science, business, technology, medicine. Some scientists think it should be the fifth state of matter. Don't believe me? Check out this link :Data Might Be the Fifth State of Matter, Proving We Reside in a Simulation – Kava News. Data is used to reveal whats underneath the veil of consumers, medicine, best practices, proof of fact. In CPT 307 we reviewed the concept of data, and how to organize it in a program. There are seven types of algorithms out there.
- Brute-force or exhaustive search
- Divide and Conquer
- Greedy Algorithms
- Dynamic Programming
- Branch and Bound Algorithm
- Randomized Algorithm
- Backtracking
Brute-Force is pretty much how it sounds. One guide the program over all the required steps to calculate the data. Its reminds me of common core math. I wasn't a student during that time however, it would be like 3x10. One would guide the program and do 10+10+10. This is a simplified version but it easy to translate.
Divide and Conquer is when one divide the data into segments and calculate by the individual brackets. This is faster than brute-force because the calculations are small and fast. One would bring the equation down to the atom level and work on it from there. (Tutorials Point)
Greedy Algorithm is when one you solve multiple data points individually and then aquire the solution after every data point is looked at. For instance, take three objects and get the height for all them individually. Then one would add the heights together to get the total distance or height of the object. (Geek 2 Geek)
Dynamic Programming is when one uses recursion. One would use dynamic programming to solve the equation if there is repeating inputs,etc. Count how many ears for infinite amount of bunnies. (Geek 2 Greek)
Branch and Bond is used when there is exponentially steps in the calculation that might have to be solved every step. (Geek 2 Geek)
Randomized Algorithm is used when one might need to randomize the calculations and insert random numbers or work on different steps. This is used to reduce calculation time among the other algorithms. (Geek 2 Geek)
BackTracking is when one uses recursion (going back) and working on the previous step if the first number doesnt give a solution. (Geek 2 Geek)
Those are summaries from the reference material. I suggest digging deeper into it. Which one is the best for the job? Often times, it comes down to calculating speed and data length. Each job we take on in the information technology we will have to adjust to the data. It all depends on what the business or what scientist the data is looking for and how much time they have, and how much data there is. As a student, I have used most of these during our assignments. Each type of algorithm did the job and worked for the assignment. One thing I will do is practice each algorithm and "learn" the method behind the maddness. I am excited for entering the workforce, and hope this helps with a little intro the what CPT 307 offers.
Reference
Backtracking algorithms. GeeksforGeeks. (n.d.). Retrieved July 29, 2022, from https://www.geeksforgeeks.org/backtracking-algorithms/
Branch and bound algorithm. GeeksforGeeks. (n.d.). Retrieved July 29, 2022, from https://www.geeksforgeeks.org/branch-and-bound-algorithm/
Data Structures - divide and conquer. Tutorials Point. (n.d.). Retrieved July 29, 2022, from https://www.tutorialspoint.com/data_structures_algorithms/divide_and_conquer.htm
Dynamic Programming. GeeksforGeeks. (n.d.). Retrieved July 29, 2022, from https://www.geeksforgeeks.org/dynamic-programming/
Greedy algorithms. GeeksforGeeks. (n.d.). Retrieved July 29, 2022, from https://www.geeksforgeeks.org/greedy-algorithms/
Randomized algorithms. GeeksforGeeks. (n.d.). Retrieved July 29, 2022, from https://www.geeksforgeeks.org/randomized-algorithms/