Important Problem Types
Important Problem Types
In the realm of algorithmic problem solving there exists known important problem types that traverse various domain-
specific problems. These problem types are;
1. Sorting
2. Searching
3. String processing
4. Graph problems
5. Combinatorial problems
6. Numerical Problems
Sorting
The sorting problem requires one to arrange the elements of a list in ascending or descending order. The list input
must allow such ordering. In more specialised real-world data, the elements of the list might allow multiple sorting
properties, for example, students in schools database might be sorted using various student properties such as age,
names, admission date and so on.
A few sorting algorithms can sort an arbitrary array of elements of size n using about n log2n comparisons.
1. Bubble sort
2. Quicksort
3. Merge sort
4. Insert sort
5. Heapsort and so on.
Searching
The searching algorithm deals with finding a given value(s) matching a search key in a given set of elements.
1. Linear search
2. Binary search
String Processing
A string is a sequence of characters from the alphabet. String processing deals with finding a word in a given text. In
recent years, there has been a proliferation of problems requiring the analysis of non-numeric data which has
interested algorithm designers and data analysts.
Graph problems
A graph is in simple terms a set of vertices connected by lines called edges. Graphs evolve from linear data structures
(i.e linked lists which evolve from arrays)and push the boundaries of what the algorithm designers can utilise in the
ADT (Abstract Data Types) set.
Combinatorial Problems
These are problems that require finding permutations, normally used to find complex optimizations such as
minimizing cost or maximizing the value of efficiency. A clear example of a combinatorial problem is the travelling
salesman problem.
Combinatorial problems are unique because of their potential for constantly increasing complex which can reach
unimaginable levels. Also, most combinatorial problems do not as of yet have a solution.
Geometric Problems
These problems require the design of algorithms that deal with geometric objects such as lines, polygons, points and
so on.
Numeric Problem
These are problems that require the use of mathematics and mathematical principles of continuous nature. For
instance, solving equations and systems of equations, computing definite integrals, evaluating functions and so on.