Knowledge

Talk:Recursion (computer science)

Source 📝

957:"To make a very literal example out of this: If an unknown word is seen in a book, the reader can make a note of the current page number and put the note on a stack (which is empty so far). The reader can then look the new word up and, while reading on the subject, may find yet another unknown word. The page number of this word is also written down and put on top of the stack. At some point an article is read that does not require any explanation. The reader then returns to the previous page number and continues reading from there. This is repeated, sequentially removing the topmost note from the stack. Finally, the reader returns to the original book. This is a recursive approach." 437: 427: 406: 31: 162: 85: 64: 22: 1615:, but works well for an intro course, even if students have had an into course w/ an OOP language like Java. As there may be undergrad, self-learners, and non-CS grad students checking out this article, here is a bit more information for consideration (it's true--there are other programming languages out there besides C++, Java, JavaScript and Python). 809:
distinctive and authors of examples should be encouraged to write 'pythonic' Python (perhaps w/ different libraries), and whatever the preferred style for BASH, C++, JavaScript/TypeScript (w/ various frameworks, both server side and in-browser), C#, Objective-C, Java, Julia, Swift, Scala, BASIC, C, D, Guile, Mumps, FORTRAN, Pascal, Brainfuck, etc. etc.
1351:"Recursion" is a mathematical method, not "computer science". That nowadays numerical mathematical computations are made with computers is another matter. There is absolutely no connection between the availability of "recursive procedures" in a computer language and the use of a recursive algorithm, a "do loop" does it just as well(more efficiently)! 1980: 1406:. Also, the numerous code examples were not helpful. The following section on the Euclidean algorithm for GCD is not much better, but at least it is a little more compact. Also, both Fibonacci and GCD have the inconvenient property (for the purposes of this article) that they are more easily and more efficiently calculated iteratively.... -- 719:
I realize that every programmer has his/her own favorite language, but reading a programming-related article that switches from one language to another is ridiculous and unnecessary. Does anyone object to re-writing each of the algorithms in a single language? I propose either Python or Java, since
1378:
Most of the section is written in a highly un-encyclopedic tone (talk of "gray matter computers" and "soft tissue," abbreviation of "Fibonacci," what appears to be an attempted pun in the phrase "or even to re-curse @#$ %^& at all,") and a gigantic list of the same algorithm in tons of different
1247:
optimize tail recursion so that it does not consume stack space. This is part of the language and programmers can rely on it. In C and Java, some compilers may do the optimization, but it is not part of the language specification, and programmers cannot rely on it. Moreover, in Java, it is generally
1898:
It’s ok (but not great) that the first verb is passive because we don’t need to know *who* solves problems by iteration. But when writing in passive voice, you can’t just switch to active voice (“needs to identify”) and refer to the subject as “this”; the subject was deliberately omitted. I believe
761:
If possible, I suggest using C because it is relatively old (but still around and important) and it is taught in a number of schools and universities. Many modern languages such as C++, Java, C# and JavaScript are derived from it, share a similar syntax and thus belong to the C-family of languages.
1685:
Recursion is not "method of solving a problem". It is a programming construct. The same algorithm (method) can be expressed with or without recursion. After all, many problems solved with a recursive program can also be solved with a transparently equivalent iterative program (tail recursion). As
1572:
It is a comprehensive introduction to recursive programming. Unlike the other books in the list, its code examples are presented in Python, which is an increasingly popular language for computer science education, as well as scientific and commercial applications. The code examples are available
691:
GCD and Towers of Hanoi are definitely generative. However, a bigger problem with the page as it stands is that the factorial and fibonacci algorithms given are structurally-recursive, though the header implies they're generatively-recursive. (The structure on which they operate is that of the
2028:
This article focuses on recursion in computer programming, and does not cover other uses of recursion in computer science, for example in databases and knowledge representation. It focuses on recursive functions and ignores recursive relations. See, for example, the recursive definition of the
808:
It is a way to help those who are looking at different languages appreciate styles. As someone who has had to debug a C program written in Java...it can be a clash of cultures. While there isn't always a huge different in the syntax of a C and Java program, the semantics and style are quite
757:
a single programming language that is well known to a broad audience. Pseudo-code can help in case someone does not understand the provided programming language example. However, for many people it is not always easy to translate pseudo-code into their favourite programming language. Many
1865:, subtleties like your collatz example can be discussed (maybe in a section "Defining partial functions by recursion" ?). Maybe, even a theorem to characterize the set of inputs on which a recursively-implemented function is defined (in the sense of "not diverging") can be stated there. 762:
It is often trivial to translate algorithms in C code to Java. Other programming languages such as functional (e.g. Scheme) or dynamic languages (e.g. Python) should be used for instance if a specific concept or language construct is needed in the example but not available in C.
183: 1309:
Quote: "If your problem requires evaluating properties and then processing depending on those properties, recursive solutions will most likely involve cumbersome conditional statements whereas an iterative solution would intuitively process each case."
1610:
Are you waiting for an answer to do it? If so, then YES. (It is a very good intro to CompSci), and when I read it for an into comp sci taught by Mathew Flatt, one of the authors, it used Scheme as the language--which is not hugely popular outside of
1433:
Recursive list processing technique element technique list technique naive technique accumulator technique railway-shunt technique inverse naive technique position technique combination technique
1044:...which may well be the function itself. This is the essence of the recursion in this example: the function calls ITSELF and uses that value to compute the fibonacci number for the k it was given, which it then passes back on up the chain. 1248:
considered impossible for an implementation to support the security model and also optimize tail calls. This issue with Java has been discussed to death all over the web; there seem to be rumors that Java 7 might have some support. — Carl
1538:
to the list of monographs on recursive programming. My edit was undone because the book was previously removed due to self promotion by the author. This latest publication on the topic is a valuable resource that should be included.
1456:
The current examples are weak. Almost all of them are as just as naturally (or more so!) expressed iteratively (factorial, gcd, binary search, list traversal). The Towers of Hanoi example, rather than presenting the algorithm for
1837:
problems can be solved using iteration rather than recursion. But what on earth does "needs to identify and index the smaller instances at programming time" mean? I'll wait a few days for discussion before rewriting the lead.
748: 1818:, but it is still a recursive function (just one that doesn't terminate in some cases -- just like the iterative equivalent). Here, again, the program could perfectly well have been written iteratively, but it is the 579:
WTF? Does the existence of a decades-old 1-minute bass solo really deserve to be mentioned at the top of this page? Is there an official WP rule that says every trivial alternative usage needs to be spelled out? -
1694:(1961), the recursive formulation makes it much more straightforward to express the logic of Quicksort, and to understand how it operates, but the algorithm (the method of solving the problem) is the same. 1860:
we should confine ourselves to the case of "smaller" subproblems (I'd prefer "simpler" to indicate this is a programmer-defined measure, not just size), since it conveys the main idea of recursion. Below
1047:
If I call fib(3), it will in turn call fib(2) and fib(1). Both of these will return 1, but they will return 1 to the fib(3) call, which adds them together and gets 2, indeed the correct value for k = 3.
1465:
of moves, with no explanation or motivation. There are no examples of mutual (or multiple) recursion; a simple example would be a symbolic differentiation program for expressions involving + and *. --
1814:
If the Collatz conjecture is correct, then you could define the "smallness" of the problem instance as the step count of the number. If it is not, the function doesn't terminate for all values of
2047:
More importantly, it does not distinguish between recursive structure and the way in which that structure is used to solve problems. It fails to point out that pure recursion can be understood
207: 493: 902:
The example programs should check for n==0 rather than n==1. Currently they simply crash when input is 0. (They shouldn't because fact(0) is defined 1 in the fact function definition.) --
758:
autodidactic programmers did not learn programming by studying pseudo-code first and might never have seen it before. An example that "compiles out of the box" is often much more helpful.
1228:. Similarly, there's plenty examples online that show that GCC can not only optimize tail-recursive calls, but also quasi-tail-recursive calls, as in the naive definition of fibonacci. 347: 981:
All examples in this tutorial can be rewriten using simple while loop. All presented exaples are recursions of same category. None of current examples show true strength of recursion.
2157: 1653:, which the same group of authors is responsible for. There is also a similar book and IDE that uses Java designed for a second semester course on Data Structures and Algorithms. 1514:
I find that the else-if's make the structure of this code far clearer than a sequence of if/returns. They let you see at a glance that only one of the clauses will be executed. --
518:
I think it would be cool to have a paragraph to recognize the fathers of the science of recursion. von Neumann is a likely lead, but haven't found any primary sources just yet.
1357:
Then there will be left some other material for "Recursion(computer science)" like "recursive procedures" with the procedure(subroutine) calling itself and other similar matter
264: 202: 1595:
The embedded reference to this book in the article feels like advertising, especially by referring to it by an abbreviation. Sure this should be rewritten and simply cited? --
747:
FYI, the current Manual of Style draft for code samples and algorithms can be found here: (Note that I don't agree with everything that is currently written in this draft.)
2051:, without understanding execution at all. Consider, for example, the Prolog program, which expresses that alice likes logic, and that she likes anything that likes logic: 1999: 2172: 1624: 135: 125: 1697:
In recursion, the solution does not necessarily "depend on solutions to smaller instances". The following is a perfectly valid recursive Python program for finding the
2147: 833:
Recursion is a great example where the choice of language really matters. So doing basic regression test and comparison between languages can be very informative.
2177: 1628:. I believe that it is a 'feature' of the people who write such things to just use acronyms for everything, and I don't know that there is much help for them... 2162: 1868:
Finally, I agree that the sentence about iteration is incomprehensible at best. It should be replaced by a sentence which appropriately summarizes the section "
1274:
The article needs to emphasize that a termination condition is essential or the algorithm is not recursion - it is an infinite loop and a run-time failure.
101: 35: 1243:
I think the issue is you are identifying "tail recursion" with compiler optimization. In the Scheme language, for example, all conforming implementations
2187: 2167: 483: 309: 1050:
This program is, however, rather bugged. If you compute fib(0), you get 1, which is incorrect. It ought to have a second base case to account for this.
2142: 792:
Beginning learners are often struggling to learn even the basics of syntax and having an example in 'their' language makes it much more approachable.
2152: 1484:
Would anybody object if I were to remove the "else" reserved words in the "Example implementation of binary search in C" code? It always makes my
841:
Creating a separate page for examples would be best if someone can find/make a template so it can get the needed metadata and indexed as Wikidata.
1677:
In computer science, recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem.
283: 984:
Number of examples whit recursion of same type can be reduced. Complex examples should be added, for instance: Simple brute force (for instance
459: 148: 92: 69: 1899:“this” refers to “a program making use of iteration”, and not just “iteration” or “such problems” (which is what the grammar badly implies). 2182: 372: 1596: 730: 551: 795:
Recursion is a difficult subject for some students to wrap their head around. Consider having more than one example in a given language.
1051: 1024: 963: 935: 883: 701: 566: 525: 255: 660:? I also notice that this section is unsourced. (Google finds very few usages of this term outside of Knowledge and copies thereof.) 1990: 1972: 1895:“Such problems can generally be solved by iteration, but this needs to identify and index the smaller instances at programming time.” 1380: 1902:
To put this more simply: make sure the sentence says WHAT needs to i.d. and index…when (non-recursive) programs solve via iteration.
1633:] which is available for Windows, MacOS, and Linux (released as self-installing script or as an Ubuntu PPA, and it is available from 1229: 1224:
I just ran this test on my default OSX-installed JVM, and it shows that the code was transformed into its non-recursive equivalent:
450: 411: 236: 1829:
Such problems can generally be solved by iteration, but this needs to identify and index the smaller instances at programming time.
1316:- Does the phrase "evaluating properties and then processing depending on those properties" say anything more than the simple term 1379:
programming languages. It looks like it needs a serious rewrite, but I don't feel familiar enough with the topic to do so myself.
903: 2137: 328: 1293: 933:
Wouldn't checking if n <= 1 be better? I agree that n == 1 is incorrect, but n == 0 adds a needless cycle for input : -->
723:-Why use a programming language at all? Programming examples should simply be written in pseudo-code, in my opinion. -Adam 1330:- How exactly would an iterative solution "intuitively" perform conditional processing without any conditional statements? 1646: 1004: 293: 174: 44: 1023:
Since k decreases each time, it will eventually hit 2. When it does so, the function returns 1 and does nothing else.
960:
However, this seems more like a standard series of function calls...it doesn't seem to be "calling itself" in any way.
820:
Authors should use comments to illustrate the steps and point out language features and idioms in use (e.g. if using a
1642: 303: 217: 1388: 1923:
problems that can be solved recursively can be solved without recursion; it suffices to maintain a push-down stack;
1877: 1559: 338: 100:
related articles on Knowledge. If you would like to participate, please visit the project page, where you can join
544:
Base case redirects here. Would it not be helpful therefore to have a clear definition of the term, 'base case'?
2119: 1968: 365: 1600: 1277:
Diagnosis and debugging techniques for recursion problems (such as stack overflow) would also be good to add.
734: 555: 1055: 1028: 967: 887: 647: 631: 625: 2048: 2036:
Moreover, because of its focus on programming, the article limits problem solving and execution methods to
1488:
act up when an else follows a return inasmuch as the else is redundant and no considered "best practices."
1384: 1337: 939: 767: 705: 570: 529: 600: 1427: 815:
We can skip commercial languages. If we need to focus, it should be on GCC languages, Python, BASH and JS.
784:
I don't think that code examples are going to fill up Knowledge to the bursting point. I would encourage
1873: 1578: 1555: 1544: 1426:
Does anyone know of a comprehensive hierarchy of recursion techniques? I found the following hierarchy
1333: 1233: 922: 599:
Wouldn't it be a good idea to include some information about Recursive procedures and processes? (as in
585: 274: 50: 1000: 836:
Remind me how high you can go with Fibonacci numbers before the JVM crashes when it runs out of memory?
436: 683: 2115: 1493: 1281: 992: 907: 879: 726: 547: 521: 1020:
The current Java code for Fibonacci numbers just outputs 1 no matter what was inputted, doesn't it?
21: 2014: 1574: 1540: 607: 996: 458:
on Knowledge. If you would like to participate, please visit the project page, where you can join
1994: 1956: 1942: 1843: 1698: 1519: 1470: 1411: 1399: 1364: 1289: 985: 763: 442: 1833:
I have a Ph.D. in computer science, but I have no idea what this is supposed to mean. Of course
426: 405: 2037: 1658: 1225: 665: 193: 2041: 918: 864: 844:
A pictures is worth 2š⁰ words. Consider simple flow charts and UML2 to go with your source.
643: 581: 245: 97: 1535: 873:
Yes - see recurrence...a good example of it being applied to determine complexity is here:
2123: 2018: 1960: 1946: 1911: 1907: 1881: 1847: 1662: 1604: 1582: 1563: 1548: 1523: 1497: 1489: 1474: 1446: 1442: 1415: 1368: 1341: 1297: 1260: 1237: 1059: 1032: 1008: 971: 943: 926: 911: 891: 868: 821: 771: 749:
Knowledge:WikiProject_Computer_science/Manual_of_style_(computer_science)#Style_guidelines
738: 709: 686: 611: 589: 574: 559: 533: 2004: 1641:, that gradually exposes students to the full semantics and pragmatics of (open source 855: 825: 603: 319: 161: 657: 184:
Requested articles/Applied arts and sciences/Computer science, computing, and Internet
2131: 1952: 1951:
PS I have been a Lisp programmer since 1967 and appreciate recursion quite deeply. --
1938: 1839: 1515: 1466: 1407: 1360: 1285: 1255: 622: 1437:
I think making the different types of recursion explicit would improve the article.
1654: 1504: 1485: 1403: 1395: 661: 1892:
The following is an awkward sentence; I fixed it but my edits have been revoked:
1394:
I agree completely. This section was a discursive, unencyclopedic essay with no
874: 2000:
Knowledge:Redirects for discussion/Log/2023 June 2 § Recursion(computer science)
860: 639: 455: 1903: 1687: 1638: 1438: 432: 780:
Just to be contrarian...why not have a ton of examples (maybe on other pages)
1869: 1691: 1612: 1221:
The article wrongly claims that neither C nor Java optimize tail recursion.
226: 1040:
No. Eventually k hits 2 or lower and returns 1, but that value is returned
621:
Should there be something about arm's length recursion in this article? --
84: 63: 1856:
I agree with your second reason (smaller vs. arbitrary). However, I think
1251: 679:
It would be nice to have a simple code example for generative recursion.
1979: 2030: 1634: 812:
It would be good to have examples with generics/templates and without.
1554:
Can you give a reason for your claim? Why is the resource valuable? -
1650: 2024:
This article presents a narrow view of recursion in computer science
1997:. Readers of this page are welcome to comment on this redirect at 1853:
I have no opinion about your first reason (method vs. construct).
1271:
Recursion is a major cause of problems in software applications.
788:
examples in a range of languages. This serves several purposes:
656:
How is this different from just enlarging the base case(s), e.g.
1673:
The lead of this article has some problems. The article begins:
1508: 853:
Is it possible to give general statements about the complexity (
1932:
whatever the point is, it probably doesn't belong in the lead.
954:
In this article, it gives an example of recursion as follows:
302:
Find pictures for the biographies of computer scientists (see
15: 798:
This is where having additional pages would be helpful, but
1226:
http://www.ibm.com/developerworks/java/library/j-diag8.html
1631:
To go with the book they have an open source didactic IDE
1354:
Most of this material should be "Recursion(mathematics)"
700:.) So they should be moved to the structural section. 1985: 1078:* @param k indicates which Fibonacci number to compute. 934:
0 (e.g., for 3! it computes 3x2x1x1 instead of 3x2x1).
1822:, not the "method of solution", which is "recursive". 1480:
Else in "Example implementation of binary search in C"
1327:- What is "cumbersome" about a conditional statement? 1993:
to determine whether its use and function meets the
988:solving) Searching filename in directories tree .. 454:, a collaborative effort to improve the coverage of 96:, a collaborative effort to improve the coverage of 1917:This was a terrible sentence for multiple reasons: 1267:
Not enough about termination and recursion problems
1398:. I have removed it, following WP policies about 208:Computer science articles needing expert attention 1072:* Recursively calculate the kth Fibonacci number. 1926:"identify and index" isn't intelligible English; 1461:the disks, just presents the calculation of the 2158:Knowledge level-5 vital articles in Technology 875:http://www.cs.duke.edu/~ola/ap/recurrence.html 348:WikiProject Computer science/Unreferenced BLPs 8: 800:can someone else suggest a template, please? 753:In my opinion we should provide pseudo-code 265:Computer science articles without infoboxes 203:Computer science articles needing attention 715:Hodge-podge of languages used in Knowledge 400: 169:Here are some tasks awaiting attention: 143: 58: 2173:Top-importance Computer science articles 1573:for free, without purchase of the book. 1373: 402: 60: 19: 2148:Knowledge vital articles in Technology 1825:The next sentence is just mystifying: 1690:pointed out in his seminal article on 110:Knowledge:WikiProject Computer science 2178:WikiProject Computer science articles 1929:"at programming time" makes no sense; 1536:Introduction to Recursive Programming 113:Template:WikiProject Computer science 7: 2163:C-Class vital articles in Technology 1870:Recursion#Recursion versus iteration 1157:2 then fib(k) = fib(k-1) + fib(k-2). 448:This article is within the scope of 90:This article is within the scope of 1511:-like program by that name. Anyway. 1374:Section 'Fibonacci' is a total mess 1081:* @return the kth Fibonacci number. 49:It is of interest to the following 1430:that covers just list processing: 1117:// If k <= 2 then fib(k) = 1. 824:, probably should you are using a 595:Recursive Procedures and Processes 284:Timeline of computing 2020–present 14: 2188:Mid-priority mathematics articles 2168:C-Class Computer science articles 1530:Books about recursive programming 898:Factorial Implementations for n=0 849:Complexity of recursive functions 468:Knowledge:WikiProject Mathematics 310:Computing articles needing images 2143:Knowledge level-5 vital articles 1978: 675:Generative (synthetic) recursion 630:Good point – thanks! Done – see 616: 471:Template:WikiProject Mathematics 435: 425: 404: 160: 83: 62: 29: 20: 2003:until a consensus is reached. 1937:I have removed the sentence. -- 1681:This is incorrect in two ways: 720:they're both very widely used. 698:n+1 where n is a natural number 488:This article has been rated as 130:This article has been rated as 2153:C-Class level-5 vital articles 1663:02:53, 21 September 2023 (UTC) 1622:is what it goes by (just like 1042:to the function that called it 1: 1416:00:13, 25 February 2013 (UTC) 1389:23:22, 24 February 2013 (UTC) 1033:03:54, 24 December 2009 (UTC) 972:04:38, 17 February 2009 (UTC) 892:05:49, 17 February 2009 (UTC) 590:20:35, 8 September 2010 (UTC) 560:23:50, 13 February 2010 (UTC) 462:and see a list of open tasks. 364:Tag all relevant articles in 104:and see a list of open tasks. 2183:C-Class mathematics articles 1882:15:34, 10 January 2021 (UTC) 1605:15:41, 7 February 2018 (UTC) 1524:22:48, 22 October 2015 (UTC) 1498:21:26, 22 October 2015 (UTC) 1475:10:53, 9 February 2015 (UTC) 1422:Hierarchy of recursion types 859:) of recursive functions? -- 692:natural numbers, defined as 648:07:22, 7 December 2012 (UTC) 612:12:03, 7 February 2009 (UTC) 373:WikiProject Computer science 149:WikiProject Computer science 93:WikiProject Computer science 1986:Recursion(computer science) 1969:Recursion(computer science) 1848:21:30, 6 January 2021 (UTC) 1583:21:19, 3 October 2017 (UTC) 1564:05:01, 3 October 2017 (UTC) 1549:03:54, 3 October 2017 (UTC) 1369:09:57, 7 January 2013 (UTC) 1298:17:50, 30 August 2010 (UTC) 927:08:00, 24 August 2008 (UTC) 912:13:05, 22 August 2008 (UTC) 869:12:29, 11 August 2008 (UTC) 304:List of computer scientists 2204: 1447:13:48, 21 March 2014 (UTC) 1217:Java, C and tail recursion 1060:13:50, 14 March 2010 (UTC) 687:16:31, 26 April 2007 (UTC) 534:14:18, 10 April 2012 (UTC) 136:project's importance scale 2124:12:31, 6 March 2024 (UTC) 2029:ancestor relation in the 1961:02:56, 6 March 2022 (UTC) 1947:02:53, 6 March 2022 (UTC) 1912:00:59, 6 March 2022 (UTC) 1342:18:22, 17 June 2011 (UTC) 1313:Run that by me again ... 1261:14:54, 29 July 2010 (UTC) 1238:12:22, 29 July 2010 (UTC) 944:16:19, 7 April 2015 (UTC) 710:09:29, 20 June 2010 (UTC) 626:01:26, 2 March 2007 (UTC) 575:09:26, 20 June 2010 (UTC) 487: 420: 366:Category:Computer science 142: 129: 116:Computer science articles 78: 57: 2053: 2019:21:25, 2 June 2023 (UTC) 1991:redirects for discussion 1973:Redirects for discussion 1704: 1066: 1009:23:15, 17 May 2009 (UTC) 772:09:19, 3 June 2008 (UTC) 739:22:00, 2 June 2008 (UTC) 494:project's priority scale 368:and sub-categories with 1888:Poor grammar in opening 1305:Recursion vs. iteration 451:WikiProject Mathematics 2138:C-Class vital articles 1591:how to Design Programs 1503:You surely don't mean 1318:conditional processing 632:Arm's-length recursion 617:Arm's-Length Recursion 329:Computer science stubs 1347:The concept is messy! 1322:conditional execution 977:More complex examples 36:level-5 vital article 474:mathematics articles 147:Things you can help 1995:redirect guidelines 1989:has been listed at 1820:form of the program 662:— Steven G. Johnson 658:recursion unrolling 1699:Collatz conjecture 1153:// Recursive Case: 443:Mathematics portal 45:content assessment 2040:, and it ignores 2038:backward chaining 1618:I can vouch that 1404:original research 1301: 1284:comment added by 1259: 1012: 995:comment added by 986:Catalan's_problem 882:comment added by 741: 729:comment added by 638:—Nils von Barth ( 550:comment added by 524:comment added by 508: 507: 504: 503: 500: 499: 399: 398: 395: 394: 391: 390: 387: 386: 2195: 2111: 2108: 2105: 2102: 2099: 2096: 2093: 2090: 2087: 2084: 2081: 2078: 2075: 2072: 2069: 2066: 2063: 2060: 2057: 2042:forward chaining 2011: 1988: 1982: 1874:Jochen Burghardt 1810: 1807: 1804: 1801: 1798: 1795: 1792: 1789: 1786: 1783: 1780: 1777: 1774: 1771: 1768: 1765: 1762: 1759: 1756: 1753: 1750: 1747: 1744: 1741: 1738: 1735: 1732: 1729: 1726: 1723: 1720: 1717: 1714: 1711: 1708: 1556:Jochen Burghardt 1396:reliable sources 1300: 1278: 1249: 1212: 1209: 1206: 1203: 1200: 1197: 1194: 1191: 1188: 1185: 1182: 1179: 1176: 1173: 1170: 1167: 1164: 1161: 1158: 1154: 1151: 1148: 1145: 1142: 1139: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1109: 1106: 1103: 1100: 1097: 1094: 1091: 1088: 1085: 1082: 1079: 1076: 1073: 1070: 1011: 989: 894: 724: 562: 536: 476: 475: 472: 469: 466: 445: 440: 439: 429: 422: 421: 416: 408: 401: 377: 371: 246:Computer science 175:Article requests 164: 157: 156: 144: 118: 117: 114: 111: 108: 107:Computer science 98:Computer science 87: 80: 79: 74: 70:Computer science 66: 59: 42: 33: 32: 25: 24: 16: 2203: 2202: 2198: 2197: 2196: 2194: 2193: 2192: 2128: 2127: 2116:Robert Kowalski 2113: 2112: 2109: 2106: 2103: 2100: 2097: 2094: 2091: 2088: 2085: 2082: 2079: 2076: 2073: 2070: 2067: 2064: 2061: 2058: 2055: 2026: 2005: 1984: 1976: 1890: 1812: 1811: 1808: 1805: 1802: 1799: 1796: 1793: 1790: 1787: 1784: 1781: 1778: 1775: 1772: 1769: 1766: 1763: 1760: 1757: 1754: 1751: 1748: 1745: 1742: 1739: 1736: 1733: 1730: 1727: 1724: 1721: 1718: 1715: 1712: 1709: 1706: 1671: 1593: 1532: 1482: 1454: 1435: 1424: 1376: 1349: 1307: 1279: 1269: 1219: 1214: 1213: 1210: 1207: 1204: 1201: 1198: 1195: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1171: 1168: 1165: 1162: 1159: 1156:// If k : --> 1155: 1152: 1149: 1146: 1143: 1140: 1137: 1134: 1131: 1128: 1125: 1122: 1119: 1116: 1113: 1110: 1107: 1104: 1101: 1098: 1095: 1092: 1089: 1086: 1083: 1080: 1077: 1074: 1071: 1068: 1018: 990: 979: 952: 950:Possible error? 900: 877: 851: 782: 717: 677: 619: 597: 545: 542: 519: 516: 473: 470: 467: 464: 463: 441: 434: 414: 383: 380: 375: 369: 357:Project-related 352: 333: 314: 288: 269: 250: 231: 212: 188: 115: 112: 109: 106: 105: 72: 43:on Knowledge's 40: 30: 12: 11: 5: 2201: 2199: 2191: 2190: 2185: 2180: 2175: 2170: 2165: 2160: 2155: 2150: 2145: 2140: 2130: 2129: 2054: 2025: 2022: 1975: 1965: 1964: 1963: 1949: 1935: 1934: 1933: 1930: 1927: 1924: 1889: 1886: 1885: 1884: 1866: 1863:in the article 1854: 1831: 1830: 1705: 1703: 1702: 1695: 1679: 1678: 1670: 1667: 1666: 1665: 1629: 1616: 1597:158.180.128.10 1592: 1589: 1588: 1587: 1586: 1585: 1567: 1566: 1531: 1528: 1527: 1526: 1512: 1481: 1478: 1453: 1450: 1432: 1423: 1420: 1419: 1418: 1375: 1372: 1348: 1345: 1306: 1303: 1268: 1265: 1264: 1263: 1218: 1215: 1067: 1065: 1064: 1063: 1062: 1048: 1045: 1017: 1014: 978: 975: 951: 948: 947: 946: 930: 929: 899: 896: 856:Big O notation 850: 847: 846: 845: 842: 839: 838: 837: 831: 830: 829: 826:design pattern 818: 817: 816: 806: 805: 804: 803: 802: 781: 778: 777: 776: 775: 774: 759: 751: 731:216.125.160.51 716: 713: 676: 673: 672: 671: 670: 669: 651: 650: 618: 615: 596: 593: 552:82.138.219.211 541: 538: 515: 512: 510: 506: 505: 502: 501: 498: 497: 486: 480: 479: 477: 460:the discussion 447: 446: 430: 418: 417: 409: 397: 396: 393: 392: 389: 388: 385: 384: 382: 381: 379: 378: 361: 353: 351: 350: 344: 334: 332: 331: 325: 315: 313: 312: 307: 299: 289: 287: 286: 280: 270: 268: 267: 261: 251: 249: 248: 242: 232: 230: 229: 223: 213: 211: 210: 205: 199: 189: 187: 186: 180: 168: 166: 165: 153: 152: 140: 139: 132:Top-importance 128: 122: 121: 119: 102:the discussion 88: 76: 75: 73:Top‑importance 67: 55: 54: 48: 26: 13: 10: 9: 6: 4: 3: 2: 2200: 2189: 2186: 2184: 2181: 2179: 2176: 2174: 2171: 2169: 2166: 2164: 2161: 2159: 2156: 2154: 2151: 2149: 2146: 2144: 2141: 2139: 2136: 2135: 2133: 2126: 2125: 2121: 2117: 2052: 2050: 2049:declaratively 2045: 2043: 2039: 2034: 2032: 2023: 2021: 2020: 2016: 2012: 2010: 2009: 2002: 2001: 1996: 1992: 1987: 1983:The redirect 1981: 1974: 1970: 1966: 1962: 1958: 1954: 1950: 1948: 1944: 1940: 1936: 1931: 1928: 1925: 1922: 1919: 1918: 1916: 1915: 1914: 1913: 1909: 1905: 1900: 1896: 1893: 1887: 1883: 1879: 1875: 1871: 1867: 1864: 1859: 1855: 1852: 1851: 1850: 1849: 1845: 1841: 1836: 1828: 1827: 1826: 1823: 1821: 1817: 1700: 1696: 1693: 1689: 1684: 1683: 1682: 1676: 1675: 1674: 1668: 1664: 1660: 1656: 1652: 1648: 1644: 1640: 1636: 1632: 1630: 1627: 1626: 1621: 1617: 1614: 1609: 1608: 1607: 1606: 1602: 1598: 1590: 1584: 1580: 1576: 1571: 1570: 1569: 1568: 1565: 1561: 1557: 1553: 1552: 1551: 1550: 1546: 1542: 1537: 1529: 1525: 1521: 1517: 1513: 1510: 1506: 1502: 1501: 1500: 1499: 1495: 1491: 1487: 1479: 1477: 1476: 1472: 1468: 1464: 1460: 1451: 1449: 1448: 1444: 1440: 1431: 1429: 1421: 1417: 1413: 1409: 1405: 1401: 1397: 1393: 1392: 1391: 1390: 1386: 1382: 1371: 1370: 1366: 1362: 1358: 1355: 1352: 1346: 1344: 1343: 1339: 1335: 1334:John lindgren 1331: 1328: 1325: 1323: 1319: 1314: 1311: 1304: 1302: 1299: 1295: 1291: 1287: 1283: 1275: 1272: 1266: 1262: 1257: 1253: 1246: 1242: 1241: 1240: 1239: 1235: 1231: 1227: 1222: 1216: 1114:// Base Case: 1061: 1057: 1053: 1052:76.121.28.181 1049: 1046: 1043: 1039: 1038: 1037: 1036: 1035: 1034: 1030: 1026: 1025:174.57.188.50 1021: 1015: 1013: 1010: 1006: 1002: 998: 994: 987: 982: 976: 974: 973: 969: 965: 964:68.40.187.164 961: 958: 955: 949: 945: 941: 937: 936:142.20.20.193 932: 931: 928: 924: 920: 916: 915: 914: 913: 909: 905: 897: 895: 893: 889: 885: 884:68.40.187.164 881: 876: 871: 870: 866: 862: 858: 857: 848: 843: 840: 835: 834: 832: 827: 823: 819: 814: 813: 811: 810: 807: 801: 797: 796: 794: 793: 791: 790: 789: 787: 779: 773: 769: 765: 764:Ghettoblaster 760: 756: 752: 750: 746: 745: 744: 743: 742: 740: 736: 732: 728: 721: 714: 712: 711: 707: 703: 702:76.191.222.13 699: 695: 689: 688: 685: 680: 674: 667: 663: 659: 655: 654: 653: 652: 649: 645: 641: 637: 636: 635: 633: 628: 627: 624: 614: 613: 609: 605: 601: 594: 592: 591: 587: 583: 577: 576: 572: 568: 567:76.191.222.13 563: 561: 557: 553: 549: 539: 537: 535: 531: 527: 526:165.234.0.138 523: 513: 511: 495: 491: 485: 482: 481: 478: 461: 457: 453: 452: 444: 438: 433: 431: 428: 424: 423: 419: 413: 410: 407: 403: 374: 367: 363: 362: 360: 358: 354: 349: 346: 345: 343: 341: 340: 335: 330: 327: 326: 324: 322: 321: 316: 311: 308: 305: 301: 300: 298: 296: 295: 290: 285: 282: 281: 279: 277: 276: 271: 266: 263: 262: 260: 258: 257: 252: 247: 244: 243: 241: 239: 238: 233: 228: 225: 224: 222: 220: 219: 214: 209: 206: 204: 201: 200: 198: 196: 195: 190: 185: 182: 181: 179: 177: 176: 171: 170: 167: 163: 159: 158: 155: 154: 150: 146: 145: 141: 137: 133: 127: 124: 123: 120: 103: 99: 95: 94: 89: 86: 82: 81: 77: 71: 68: 65: 61: 56: 52: 46: 38: 37: 27: 23: 18: 17: 2114: 2046: 2035: 2027: 2007: 2006: 1998: 1977: 1971:" listed at 1920: 1901: 1897: 1894: 1891: 1862: 1857: 1834: 1832: 1824: 1819: 1815: 1813: 1680: 1672: 1623: 1619: 1594: 1533: 1505:Agent Orange 1486:Agent Orange 1483: 1462: 1458: 1455: 1436: 1425: 1381:72.82.63.137 1377: 1359: 1356: 1353: 1350: 1332: 1329: 1326: 1321: 1317: 1315: 1312: 1308: 1276: 1273: 1270: 1244: 1223: 1220: 1041: 1022: 1019: 983: 980: 962: 959: 956: 953: 901: 872: 854: 852: 799: 785: 783: 754: 722: 718: 697: 693: 690: 681: 678: 629: 620: 598: 578: 565:Just added. 564: 543: 520:— Preceding 517: 509: 490:Mid-priority 489: 449: 415:Mid‑priority 356: 355: 339:Unreferenced 337: 336: 318: 317: 292: 291: 273: 272: 254: 253: 235: 234: 216: 215: 192: 191: 173: 172: 131: 91: 51:WikiProjects 34: 1858:in the lead 1701:step count: 1507:, but some 1280:—Preceding 1230:130.92.9.56 991:—Preceding 919:Quuxplusone 878:—Preceding 822:GoF pattern 725:—Preceding 684:84.9.82.184 582:Frankie1969 546:—Preceding 465:Mathematics 456:mathematics 412:Mathematics 2132:Categories 1688:Tony Hoare 1669:Definition 1639:Snap Store 1490:Damotclese 904:80.66.6.99 2033:article. 2008:Steel1943 1692:Quicksort 1649:dialect) 1613:GNU Guile 1016:Java code 604:Kamitsaha 540:Base Case 227:Computing 39:is rated 1953:Macrakis 1939:Macrakis 1840:Macrakis 1637:and the 1575:Bkthfrst 1541:Bkthfrst 1534:I added 1516:Macrakis 1467:Macrakis 1452:Examples 1408:Macrakis 1361:Stamcose 1294:contribs 1286:Brutzman 1282:unsigned 1005:contribs 993:unsigned 917:Done. -- 880:unsigned 727:unsigned 623:Skaraoke 548:unsigned 522:unsigned 275:Maintain 218:Copyedit 2031:Datalog 1758:collatz 1710:collatz 1655:DrKC MD 1635:Flathub 1087:private 997:Rahulov 514:History 492:on the 256:Infobox 194:Cleanup 134:on the 41:C-class 1749:return 1737:return 1651:Racket 1647:Scheme 1459:moving 1400:essays 1166:return 1141:return 1090:static 861:Abdull 640:nbarth 237:Expand 47:scale. 2107:logic 2095:likes 2080:alice 2074:likes 2068:logic 2062:alice 2056:likes 1904:Benlc 1872:". - 1463:count 1439:pgr94 1129:<= 320:Stubs 294:Photo 151:with: 28:This 2120:talk 2015:talk 1957:talk 1943:talk 1908:talk 1878:talk 1844:talk 1791:else 1743:else 1659:talk 1643:Lisp 1625:SICP 1620:HtDP 1601:talk 1579:talk 1560:talk 1545:talk 1520:talk 1509:lint 1494:talk 1471:talk 1443:talk 1412:talk 1402:and 1385:talk 1365:talk 1338:talk 1290:talk 1256:talk 1245:must 1234:talk 1160:else 1056:talk 1029:talk 1001:talk 968:talk 940:talk 923:talk 908:talk 888:talk 865:talk 786:good 768:talk 735:talk 706:talk 694:zero 666:talk 644:talk 608:talk 602:) -- 586:talk 571:talk 556:talk 530:talk 2044:. 1921:all 1835:all 1707:def 1428:pdf 1320:or 1252:CBM 1190:fib 1169:fib 1102:int 1096:fib 1093:int 1069:/** 755:and 696:or 642:) ( 484:Mid 126:Top 2134:: 2122:) 2110:). 2092::- 2071:). 2017:) 1959:) 1945:) 1910:) 1880:) 1846:) 1838:-- 1785:== 1773:if 1767:// 1728:== 1722:if 1719:): 1661:) 1603:) 1581:) 1562:) 1547:) 1522:) 1496:) 1473:) 1445:) 1414:) 1387:) 1367:) 1340:) 1324:? 1296:) 1292:• 1254:· 1236:) 1205:); 1120:if 1084:*/ 1058:) 1031:) 1007:) 1003:• 970:) 942:) 925:) 910:) 890:) 867:) 828:). 770:) 737:) 708:) 682:-- 646:) 634:. 610:) 588:) 573:) 558:) 532:) 376:}} 370:{{ 2118:( 2104:, 2101:X 2098:( 2089:) 2086:X 2083:, 2077:( 2065:, 2059:( 2013:( 1967:" 1955:( 1941:( 1906:( 1876:( 1842:( 1816:n 1809:) 1806:1 1803:+ 1800:n 1797:* 1794:3 1788:0 1782:2 1779:% 1776:n 1770:2 1764:n 1761:( 1755:+ 1752:1 1746:: 1740:0 1734:: 1731:1 1725:n 1716:n 1713:( 1657:( 1645:/ 1599:( 1577:( 1558:( 1543:( 1518:( 1492:( 1469:( 1441:( 1410:( 1383:( 1363:( 1336:( 1288:( 1258:) 1250:( 1232:( 1211:} 1208:} 1202:2 1199:- 1196:k 1193:( 1187:+ 1184:) 1181:1 1178:- 1175:k 1172:( 1163:{ 1150:} 1147:; 1144:1 1138:{ 1135:) 1132:2 1126:k 1123:( 1111:{ 1108:) 1105:k 1099:( 1075:* 1054:( 1027:( 999:( 966:( 938:( 921:( 906:( 886:( 863:( 766:( 733:( 704:( 668:) 664:( 606:( 584:( 569:( 554:( 528:( 496:. 359:: 342:: 323:: 306:) 297:: 278:: 259:: 240:: 221:: 197:: 178:: 138:. 53::

Index


level-5 vital article
content assessment
WikiProjects
WikiProject icon
Computer science
WikiProject icon
WikiProject Computer science
Computer science
the discussion
Top
project's importance scale
WikiProject Computer science

Article requests
Requested articles/Applied arts and sciences/Computer science, computing, and Internet
Cleanup
Computer science articles needing attention
Computer science articles needing expert attention
Copyedit
Computing
Expand
Computer science
Infobox
Computer science articles without infoboxes
Maintain
Timeline of computing 2020–present
Photo
List of computer scientists
Computing articles needing images

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑