• Revision:Algorithms

TSR Wiki > Study Help > Subjects and Revision > Revision Notes > Mathematics > Algorithms



An algorithm is defined as a finite sequence of unambiguous instructions for solving a problem.

  • Every algorithm requires an input
  • The output depends only on the input
  • The algorithm must terminate in a finite time for all inputs (it doesn't get stuck in a loop)

Contents

Order

The order of an algorithm is a measure of the approximate run time for an algorithm, depending on the size of the problem. For large problems we only need to consider the dominant term to get an approximate run time.

The efficiency of an algorithm is a measure of how well an algorithm copes with an increase in the size, n, of a problem. The efficiency decreases as run time increases.

Order Run time proportional to
Linear n
Quadratic n^2
Cubic n^3
Exponential x^n or n!

Example

A computer takes 2 seconds to solve a problem of size 30. Estimate the times taken to solve a problem of size 300 if the algorithm used has

  • an order n

 2 \times \frac{300}{30} = 20\ seconds

  • an order n2

 2 \times (\frac{300}{30})^2 = 200\ seconds \approx 3.33\ minutes

  • an order n3

 2 \times (\frac{300}{30})^3 = 2000\ seconds \approx 33.3\ minutes

  • an order 2n

 time \propto 2^n

 t = k \times 2^n

 2 = k \times 2^{30}

 k = \frac{2}{2^{30}}

Therefore, using n = 300

t = 2^{300} \times \frac{2}{2^{30}}

t \approx 3.79e81\ seconds \approx 1.2e71\ millenia

Also See

See the other D1 notes:

  1. Algorithms
  2. Sorting algorithms
  3. Packing algorithms
  4. Graphs and networks
  5. Minimum connector problems
  6. The shortest path
  7. Route inspection
  8. The travelling salesman problem
  9. Linear programming
  10. The simplex algorithm

Comments

Try Learn together, TSR's study area

180,666
essays

21,142
mindmaps

25,049
revision notes

11,633
quizzes

create
a study planner

thousands
of discussions


New on TSR

Student crowdfunds degree

Graduate raises £26,000 online for Masters course

Article updates