Algorithm Design and Data Structure Techniques



Algorithms

        The word “algorithm” has become rather mainstream in today’s social networking climate, but in computer science, it means so much more than simply how frequently videos are pushed to someone’s “For You Page” on TikTok. In programming, algorithms are responsible for the processes in which a computer processes specific tasks (Meinecke, 2021).





Photo by Getty Images from Communications of the ACM





…and Data Structure Design!

           There are multiple ways an algorithm can be implemented. Some of the most common ones used are (Lysecky, Vahid, & Givargis, 2015):



  • Linear search
  • Binary search
  • Selection sorting
  • Insertion sorting
  • Shell sorting
  • Quicksorting
  • Merge sorting
  • Radix sorting
  • Partitioning


Algorithm Efficiency

        With this many options for a small number of functions, it follows that some are more efficient than others, depending on the circumstances needing met (Jimenez, n.d.). An algorithm’s efficiency can be measured in two ways: time complexity and space complexity (Ziegler, 2004).




Measuring Efficiency

         Big O Notation measures time complexity, or how quickly the algorithm completes its process. Meanwhile, space complexity is how much memory the algorithm requires to run. A trade-off exists between the two complexities (Ziegler, 2004). Even with the ever-evolving nature of today’s technology and it’s improvements, a programmer must weigh which is more important when choosing which one to implement.





References:


Jimenez, D. (n.d.) Complexity analysis. Retrieved from http://www.cs.utexas.edu/users/djimenez/utsa/cs1723/lecture2.html

Lysecky, R., Vahid, F., Lysecky, S., & Givargis, T. (2015). Data structures essentials. Retrieved from https://zybooks.zyante.com/#/zybook/DataStructuresEssentialsR25/chapter/1


Meinecke, L. (2021, October 11). What is an Algorithm in Programming? - Definition, Examples & Analysis. Study.com https://study.com/academy/lesson/what-is-an-algorithm-in-programming-definition-examples-analysis.html


Zeigler, J. (2004). Time, complexity, space complexity, and the O-notation (Links to an external site.). Retrieved from http://www.leda-tutorial.org/en/official/ch02s02s03.html



Comments