As is the case in many scientific arenas, the first studies in the field of algorithms were conducted by Muslim scientists. The concept of algorithm was used for the first time by the worldwide renowned Muslim scientist Al-Khwarizmi, who lived between 780–850 AD in Baghdad. Al Khwarizmi put his name to historic studies in the fields of mathematics, astronomy, and geography. His work entitled Hisāb al-jabr wa-l-muqābala (Calculation by Completion and Balancing) constitutes the first collection of algorithms. The Latin translation attracted great attention in Europe. The Europeans used the term algoritmi, rendered from “Khwarizmi,” to refer to rules for solving arithmetical problems by using Arabic numerals.
Having first developed as a branch of mathematics, algorithms have been described as a sequence of instructions that is used to solve a certain problem. These finite number of steps,begin at a certain point and come to an end with a result. But, today when we talk about algorithms, what comes to mind are the methods pursued in the operations of sequencing in computer programming; though algorithms are used in many fields, including physics, chemistry, biology, and music.
When different algorithms are used for solving the same problem, this enables us to reach the same solution through different means. There are, for instance, a great number of sorting algorithms (selection sorting, merge sorting, quick sorting) that have been developed for the purpose of incrementally sorting a given set of numbers. The same also applies to the search algorithms which find a given number in a set of numbers. What does this imply for us? Different people can attempt to solve the same problem with different algorithms or approaches that are better, truer or more “beautiful”. Thus, it is always important not to reject an idea without a prior examination or understanding, to welcome proposals of different opinions and to try to benefit from better alternatives or solutions. Thus, we can understand from an algorithmic approach that establishing dialogue and showing mutual respect are essential moral virtues in transforming differences into wealth.
Computer algorithms solve certain problems according to pre-defined parameters. Thus, we should never forget that computers cannot carry out a spontaneous operation, but can only carry out functions that have previously been programmed into them by human beings. Although some researchers, by relying too much on recent developments in computer sciences, and particularly in fields like artificial intelligence, attribute human characteristics to computers. They even estimate that they can produce human-like things in the near future, which seems rather unfeasible when we consider countless physical and spiritual features of humans. What does this imply for us? Pursuing a systematic method when solving problems in both computer sciences and daily life would considerably increase one’s success rate in solving any problems encountered. The most critical stages in problem solving are obviously a correct diagnosis and full description of the problem. The algorithms are developed and the most coherent and suitable are then chosen.
After an algorithm is designed in a flowchart, it is translated into software and tested against verifiable data prior to its usage in real operations. This test is necessary to prevent probable flaws in the software. What does this imply for us? By utilizing all the talents and especially the intelligence granted to us, human beings are always able to find what is better or truer. Research has been conducted in scientific studies by keeping in mind that there is always a next step in any development that has been achieved; the experience of the history of mankind demonstrates that a method that has been developed today might prove to be inadequate tomorrow.
When analyzing a number of different algorithms that are used to solve the same problem, the cost is assessed, with the least costly and most suitable one being selected. The cost of an algorithm is determined according to the number of operations carried out in solving any problem. An algorithm which solves the same problem with a greater number of steps has a lesser efficiency and a lesser performance.
Sorting algorithm by insertion
Sorting algorithms are one of the most frequently used algorithms in computers. As sorted data is more easily processed and used, data are usually sorted first with a sorting algorithm before it is processed within more costly operations.
In insertion sort (i.e., sorting by insertion), numbers to be sorted are inserted into a new “sorted” set. The new sorted set is empty at the beginning, and the numbers are inserted one by one into the right position of this set. During each insertion, the number at hand is compared to the numbers of the new set from the smallest to the largest. During a comparison, if the term (number) at hand is smaller than the term in the new sorted set, then the term is inserted right before the term in the sorted set. As each term is generally compared with all the terms which precede it, sorting of n numbers is done by about n2 comparisons. Thus, the cost of such a sorting algorithm is O(n2).
The quick-sort algorithm
This algorithm is used to find the shortest way between two points. Let us suppose that we have a limited number of points, some of which are inter-related. During this type of calculation, the shortest way is systematically found by checking all the combinations that have been able to be established among given points. The web sources that are provided for planning routes and mapping services with PNDs (Portable Navigation Devices) for travelers can be given as examples; here the minutest details of every highway and road have been recorded to the virtual media. In accordance with certain criteria, by taking into consideration all the probable routes between the two addresses provided by the user, the optimum driving route, including road and street names, is suggested.
Use of algorithm in medicine
Any research or inquiry used in the diagnosis and treatment/curing of a disease is defined as a medical algorithm. The logic of a decision tree is used in diagnosing, curing and following up diseases with these algorithms. Guiding algorithms, for example, “if symptoms A, B, C are observed in patient, then, the patient is probably suffering from the disease D, so, use the treatment E” are used in medical expert systems. The purpose of such algorithms is to standardize the medical services provided and thus minimize potential uncertainties and errors that likely to arise. Moreover, such algorithms are also used for educational and training purposes and as a guide to approaching the patients, diagnosing and curing diseases and towards solving their problems with greater ease. A great number of medical information that has been published has been transformed into numerous algorithms, ranging from those that use simple calculations to those that make highly complicated decisions. For instance, in the algorithm that was developed to measure the Body Mass Index (BMI), age, sex, height and weight are among the questions that are asked of the patient. The data obtained from the patient is later applied to a formula developed from the experiences of medical science, and the said index can thus be calculated. However, doctors should compare the results obtained from such algorithms with their existing knowledge, for even such simple algorithms as BMI become undependable in different cases, for example an athlete or an expectant mother. Algorithms only provide guidance for physicians, but the final decision should be taken by the physician after having individually assessed the status of each and every patient.
Algorithms and music
The algorithmic composition has been used in music for centuries to produce music with a methodological approach. Canon, for example, is a form of music produced with an algorithm in which a melody is replicated by one or more imitations of it played after a given duration.
Human brain, nature, and algorithms
Although the secrets of brain have not yet been fully explained, vital information has been compiled about its biological structure and functioning, thus proving that different sections of the brain fulfill different roles. Such sophisticated tasks as controlling the bodily organs, mental discernment, functions corresponding to the use of tongue and other sensory activities, the perception of colors, calculation of actions and the perception of physical conditions, are all carried out by use of brain mechanisms and faculties. All these tasks are accomplished by algorithmic processes which have not yet been fully explained. The issue of the unification of the data or images received by the eyes is, for instance, one of the matters that scientists do not yet fully understand. Although many have tried to imitate the human brain, such simple cerebral functions as walking and communicating have, to date, not been convincingly imitated.
What algorithms imply for us
As science and technology develop more and more, new inventions are being made, algorithms are being proposed for unsolved problems, while algorithms of already solved problems are being further developed. For example, many ciphers, which in the 1970s were believed to be unsolvable within an acceptable span of time, are being easily solved today thanks to the algorithms that have been developed and the ever-increasing operational power of computers. Consequently, developments in algorithms suggest to us that we should always search for that which is better and more effective; also we should remember that there are a number of different ways that lead to the very same target. Thus, we should always be open to the ideas of others and willing to consult with them before making a decision about any subject.
Ahmet Isik has a PhD in mathematics and is a freelance writer.
Cormen, T. H., C. E. Leiserson, R. L. Rivest, Clifford Stein. Introduction to Algorithms, MIT Press, 24th Edition, 2000.