Loopless algorithm

In computational combinatorics, a loopless algorithm or loopless imperative algorithm is an imperative algorithm that generates successive combinatorial objects, such as partitions, permutations, and combinations, in constant time and the first object in linear time.[1][2] The objects must be immediately available in simple form without requiring any additional steps.[1]

A loopless functional algorithm is a functional algorithm that takes the form unfoldr step • prolog where step takes constant time and prolog takes linear time in the size of the input.[3][4] The standard function unfoldr is a right-associative Bird unfold.[3]

References

  1. ^ a b Ehrlich, G. (July 1973). "Loopless algorithms for generating permutations, combinations, and other combinatorial configuration". Journal of the ACM. 20 (3). New York, N.Y.: ACM: 500–513. doi:10.1145/321765.321781. ISSN 0004-5411.
  2. ^ Knuth, D. (February 2005). Volume 4, Fascicle 2: Generating All Tuples and Permutations. The Art of Computer Programming. Upper Saddle River, N.J.: Addison–Wesley Professional. ISBN 0-201-85393-0.
  3. ^ a b Bird, R. (July 2006). Loopless functional algorithms. International Conference on Mathematics of Program Construction (MPC 06). Heidelberg, Germany: Springer. doi:10.1007/11783596.
  4. ^ Snape, J. (September 2005). Loopless Functional Algorithms. Master's thesis. Oxford, U.K.: University of Oxford. OCLC 63162239.


Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.