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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
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.
Aho, A. V., Hopcroft, J. E. and Ullman, J. D. (1974). The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, Massachusetts.
Bellman, R. E. (1957). Dynamic Programming, Princeton University Press, California.
Bentley, J. (1980). ‘Multi-dimensional divide and conquer’, CACM, Vol. 23, No. 4, pp. 214–229.
Bird, R. S. (1980). ‘Tabulation techniques for recursive programs’, Computing Survey, Vol. 12, No. 4, December, pp. 403–417.
Gardner, M. (1976). ‘Catalan Numbers’, Scientific American, June, pp. 120–124.
Godbole, S. (1973). ‘On efficient computation of matrix chain products’, IEEE Transactions on Computers, Vol. C-22, No. 9, pp. 864–866.
Horowitz, E. and Sahni, S. (1978). Fundamentals of Computer Algorithms, Pitman, London.
Hu, T. C. (1982). Combinatorial Algorithms, Addison-Wesley, Reading, Massachusetts.
Pohl, I. (1972). ‘A sorting problem and its complexity’, CACM, Vol. 15, No. 6, pp. 462–663.
Strassen, V. (1969). ‘Gaussian elimination is not optimal’, Numerische Mathematik, Vol. 13, pp. 354–356.
Author information
Authors and Affiliations
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)