Applying algorithmic design and data structure techniques creating structured programs
![]() |
https://www.prepbytes.com/summer-programs/master-data-structures-and-algorithms |
The
information industry wants structured applications that efficiently handle the enormous
amount of required data. For example, companies like Amazon and Facebook have large
amounts of information that must be easily accessed and stored. Proper design
of data structures combined with the best algorithms creates a fast retrieval
from searching and sorting these massive data structures. According to Shaffer
(2013), There is a benefit and costs attributed to each algorithm and data structure
created. Having the fastest search and sort Big O time may result in having taken
up too much space (Zeigler, J. (2004).
Learning about the different data
structures helps understand that some are best in some situations, not others. The
same holds true for algorithms. Algorithmic thinking is breaking a problem down
into input – problem – output. The key is matching a data structure and algorithms
to the needs of the application at hand and making efficient use of the systems
resources (section 1). Problems of the past that could not be solved are now ready
to be solved. New processing power and precise design of these systems combined
with data structures and algorithms are needed to meet the demands today and in
the future.
Some basic examples of data structures include stack, array, queue, stack, tree, linked lists, hash tables, trees, heaps, graphs, etc. An excellent website to review some of these data structures is by Mallawaarachchi (2020) https://towardsdatascience.com/8-common-data-structures-every-programmer-must-know-171acf6a1a42.
![]() |
https://towardsdatascience.com/seven-7-essential-data-structures-for-a-coding-interview-and-associated-common-questions-72ceb644290 |
https://coderscat.com/how-to-learn-data-structures-and-algorithms/
Some basic sort algorithms are merge, quick, bucket, heap, counting, etc. Some sorts are faster than others on small data but could take years to sort millions of data items. Search algorithms like linear search, search one by one, and binary search uses divide and conquer is faster but requires the list to be sorted. Some other search algorithms are Depth/Breadth First search, hashing, Dynamic programming, String matching and Parsing, Exponentiation by squaring or Binary exponentiation, and many others (Ozturk.27, 2016). Ozturk27 gives an example of Binary exponentiation:
“Say you want to calculate 232. Normally
we’d iterate 32 times and find the result. What if I told you it can be done in
5 iterations?”
“Exponentiation by squaring or Binary
exponentiation is a general method for fast computation of large positive
integer powers of a number in O(log2N). Not only this, but the method is also
used for computation of powers of polynomials and square matrices. (p5)”
Some
algorithms and data structure designs are better than others. For example,
Brute-force or exhaustive search can take little time if done on a small power
of 2 or 3, but as the powers get larger, the method could take years in the
worst case (Complexity (n.d). Another example would be the google search engine
algorithm, which is unique in ranking web pages to allow search by relevancy. Analyzing
the program, and quantifying resources, will determine which data structure and
algorithm can be used for each situation (Lysecky, Vahid, Lysecky, &
Givargis, (2015). A good course that explains Algorithms and Data Structures is
by McGavren (2021), located at the following link: https://www.youtube.com/watch?v=8hly31xKli0.
As
a new programmer learning as many techniques as possible in developing
structured programs will assist in the journey to apply algorithmic design and
data structure techniques in developing structured
programs. Each situation requires analysis to find the needs to meet the expectations
of a successful program. Utilizing testing methods for a specific range of
different data structures and algorithms is necessary for effective results. Breaking
problems down into simpler subproblems can lead to quickly solving the complex issues
later (Ozturk.27, 2016). Programming will require understanding data structure
and algorithms to design a better future for all.
![]() |
https://universalfreecourse.com/data-structures-and-algorithms-in-python-free-download |
References
Complexity
analysis (Links to an external site.). (n.d.).
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/section/3
McGavren
J. (18 March 2021) Algorithms
and Data Structures Tutorial - Full Course for Beginners.
Retrieved from https://www.youtube.com/watch?v=8hly31xKli0
Ozturk.27 (21 November 2016) 7 algorithms and
data structures every programmer must know. Retrieved from https://u.osu.edu/cstutorials/2016/11/21/7-algorithms-and-data-structures-every-programmer-must-know/
Shaffer
C. (March 2013) Data Structures and Algorithm Analysis.
Retrieved from
https://people.cs.vt.edu/~shaffer/Book/JAVA3elatest.pdf
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