Skip to main content

Techniques for Developing Efficient Algorithms

  • Chapter
Abstract Data Types and Algorithms

Part of the book series: Macmillan Computer Science Series

  • 73 Accesses

Abstract

There are no general and standard techniques for designing efficient algorithms for a given problem. However, as you may have realised, we have been using certain useful techniques which have quite often helped us in designing efficient algorithms. For instance, binary search algorithms, tree operations and the quicksort algorithm all have a common theme: they divide the problem into two sub-problems of approximately equal size, and then recursively solve the two sub-problems. The best results are usually achieved when the problem is divided into two equal-sized sub-programs. Such a paradigm is known as divide and conquer and is discussed at length below. There are some other techniques which we shall discuss. It must be noted, however, that these techniques are merely guidelines and are not guaranteed to work for every problem. Nevertheless, when solving a new problem it is often useful first to try such a technique in the hope that it will give either a good solution or perhaps some insight regarding the problem properties.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Bibliographic Notes and Further Reading

  • Aho, A. V., Hopcroft, J. E. and Ullman, J. D. (1983). Data Structures and Algorithms, Addison-Wesley, Reading, Massachusetts.

    Google Scholar 

  • Aho, A. V., Hopcroft, J. E. and Ullman, J. D. (1974). The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, Massachusetts.

    Google Scholar 

  • Bellman, R. E. (1957). Dynamic Programming, Princeton University Press, California.

    Google Scholar 

  • Bentley, J. (1980). ‘Multi-dimensional divide and conquer’, CACM, Vol. 23, No. 4, pp. 214–229.

    Article  Google Scholar 

  • Bird, R. S. (1980). ‘Tabulation techniques for recursive programs’, Computing Survey, Vol. 12, No. 4, December, pp. 403–417.

    Article  Google Scholar 

  • Gardner, M. (1976). ‘Catalan Numbers’, Scientific American, June, pp. 120–124.

    Google Scholar 

  • Godbole, S. (1973). ‘On efficient computation of matrix chain products’, IEEE Transactions on Computers, Vol. C-22, No. 9, pp. 864–866.

    Article  Google Scholar 

  • Horowitz, E. and Sahni, S. (1978). Fundamentals of Computer Algorithms, Pitman, London.

    Google Scholar 

  • Hu, T. C. (1982). Combinatorial Algorithms, Addison-Wesley, Reading, Massachusetts.

    Google Scholar 

  • Pohl, I. (1972). ‘A sorting problem and its complexity’, CACM, Vol. 15, No. 6, pp. 462–663.

    Article  Google Scholar 

  • Strassen, V. (1969). ‘Gaussian elimination is not optimal’, Numerische Mathematik, Vol. 13, pp. 354–356.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Copyright information

© 1990 Manoochehr Azmoodeh

About this chapter

Cite this chapter

Azmoodeh, M. (1990). Techniques for Developing Efficient Algorithms. In: Abstract Data Types and Algorithms. Macmillan Computer Science Series. Palgrave, London. https://doi.org/10.1007/978-1-349-21151-7_8

Download citation

  • DOI: https://doi.org/10.1007/978-1-349-21151-7_8

  • Publisher Name: Palgrave, London

  • Print ISBN: 978-0-333-51210-4

  • Online ISBN: 978-1-349-21151-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics