An Algorithm, which is essential to data structures, is a procedure
written as a function or program. In addition, algorithms determine how data is
manipulated and applied to a program (Data Structures: Lecture 2, n.d.). Algorithmic design techniques
are used to build scalable data structures. It is important to first analyze,
build, test and verify algorithms to determine the impact on executed
operations, or when input is increased on an operation.
Some of the basic
algorithmic techniques include the following:
- Divide and Conquer.
- Greedy Algorithms.
- Brute-force or exhaustive search.
- Dynamic Programming.
- Branch and Bound Algorithm.
To discuss a few techniques, let us look at the divide and
conquer, greedy algorithms, and dynamic programming methods. The ‘divide and
conquer' method involves breaking down the programming into smaller pieces. It
resolves the smaller parts using recursive language, then combines them again
for the final algorithm. The greedy algorithm takes a more direct approach with
the shortest path to resolve, regardless of future changes that may be
necessary. Finally, dynamic programming, which is like the 'divide and
conquer' method, stores duplicate function calls in a table where it retrieves
results when necessary.
Figure 1.
Note: Data structure classification (Data Structure, 2022)
In comparison, the time and space complexity must be considered
when choosing the best method to use. Time complexity is the time it takes to
perform or execute an algorithm. When applied to a data structure, space
complexity determines the amount of space or memory that is required by variables
in the program. The divide and conquer algorithm would be more useful when
combating larger problems since it breaks down into smaller subproblems to
resolve recursively.
There are several
options when applying design and data structures to develop programs. In Java programming, data structures can be
designed using arrays, linked lists, stacks, and queues to name a few. Arrays
and objects can be used to store data by implementing dynamic or non-dynamic algorithms.
In addition, hierarchical trees or connection nodes can be applied to organize
data
(Team, 2021) . New methods are constantly being developed
to store and organize data in an efficient manner.
References
Data Structures: Lecture
2.
(n.d.). University of Texas at Austin. Retrieved April 13, 2022, from https://www.cs.utexas.edu/users/djimenez/utsa/cs1723/lecture2.html
Data structure.
(2022, March 24). [Image]. GeeksforGeeks. https://www.geeksforgeeks.org/difference-between-linear-and-non-linear-data-structures/
Team, T. (2021, June 23).
Data structure in java – a complete guide for linear & Non-Linear data
structures. TechVidvan. Retrieved April 14, 2022, from
https://techvidvan.com/tutorials/data-structure-in-java/