This site is under construction and will be forever. More examples and pages might be added in the futur. Every comment or suggestion is much appreciated.

Visit this great site to learn more about different algorithms and how they work and perform.

TEST IT YOURSELF

Time complexity and energy efficiency of algorithms are often closely connected. To develop green software the most efficient algorithms should be used.
Navigate directly to the next pages to test time complexity of several algorithms.
Below you can find some general information about algorithms and green computing, and how to use the applications on this site.

HISTORY

The word 'algorithm' is derived from the name of the 9th-century Persian mathematician Muhammad ibn Musa al-Khwarizmi. He is also known as the author of lim al-jabr wa l-muqābala. 'Al-jabrin' refers to the operation of moving a term from one side of an equation to the other, and it entered the Latin language as the word 'algebra'.


Since antiquity, step-by-step procedures for solving mathematical problems have been attested. In our digitized world algorithms are ubiquitous. Under the surface of contemporary society, algorithms are determining our lives. They might be helpful, but also intrusive. In any case, they are energy consuming.

DATA DECARBONISATION

Accounting for about 2 percent of total greenhouse gas emissions, data centres have the same carbon footprint as the aviation industry. By 2040, storing digital data is set to create 14 percent of the world's emissions. Because data isn't physical, we are often unaware of its stark environmental impact.


Many of the sustainability initiatives of data centers are based on using renewable energy for cooling systems to reduce power consumption. A lot of researchers are engaged in optimizing the energy efficiency of the hardware components. However, the software itself also has a significant effect on the amount of electricity being consumed. Algorithmic energy efficiency is the key to green software development.


Software researchers conduct studies measuring the energy consumption of different methods and algorithms varying experimental environment. The ever growing number of primary studies are having at times varying conclusions. In some cases experimental results falsify the generalization that time and space complexity can be used as a measure for energy efficiency. However, many other empirical studies and meta-analytical comparisons suggest energy consumption of an algorithm does depend mainly on time and space complexity.

SORTING ALGORITHMS & TIME EFFICIENCY

Sorting algorithms are fundamental to almost every information system software. They are not only used directly in many applications, but also very often implicitly by other algorithms. Selecting an energy-efficient sorting algorithm is crucial in helping to reduce loss in terms of resources. Energy consumption and efficiency are part of the cornerstone of green software engineering.

Big O notation is used to describe the complexity of an algorithm. It is a measure for the number of operations an algorithm wil make in a worst case. Some emperical studies conclude that the energy consumption of sorting algorithms depends mainly on time and space complexity of that algorithm, which means algorithms that needs O(n2) comparisons require more energy than algorithms with O(n log n) comparisons.

LITTLE WARNING ON TESTING

On this site you can test some of these algorithms yourself and get an idea of their efficiency. The program will measure the running time of the algorithm. Note that there are many factors that influence the time an algorithm takes to run. For example, it will be influenced by the other processes your computer is handling. Try an algorithm several times to estimate the deviations, caused by these influences. The bigger the data, the clearer the differences between the algorithms become. However, trying slow algorithms with arrays of 100,000 elements or more can cause your browser to freeze for some time.

Reading and understandig code is the best way to evaluate the efficiency of an algorithm. You can check the code of the algorithms by clicking on the black thumbnails. The example of the two 'same values algorithms' makes clear that one algorithm can be more efficient than an other in only one case, but that this case will be decisive.