3504:
3241:
3251:
33:
3261:
3511:
424:"In almost every computation a great variety of arrangements for the succession of the processes is possible, and various considerations must influence the selections amongst them for the purposes of a calculating engine. One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation"
135:
1182:
is produced, for example, it can be compared with its predecessors to ensure that at least it is efficient as before with known data, taking into consideration any functional improvements. Benchmarks can be used by customers when comparing various products from alternative suppliers to estimate which
1895:
In the early days of electronic computing, if an algorithm and its data would not fit in main memory then the algorithm could not be used. Nowadays the use of virtual memory appears to provide much more memory, but at the cost of performance. Much higher speed can be obtained if an algorithm and its
526:
In practice, there are other factors which can affect the efficiency of an algorithm, such as requirements for accuracy and/or reliability. As detailed below, the way in which an algorithm is implemented can also have a significant effect on actual efficiency, though many aspects of this relate to
1892:. To further complicate the issue, some systems have up to three levels of cache memory, with varying effective speeds. Different systems will have different amounts of these various types of memory, so the effect of algorithm memory needs can vary greatly from one system to another.
1736:
Modern computers can have relatively large amounts of memory (possibly gigabytes), so having to squeeze an algorithm into a confined amount of memory is not the kind of problem it used to be. However, the different types of memory and their relative access speeds can be significant:
473:
An algorithm is considered efficient if its resource consumption, also known as computational cost, is at or below some acceptable level. Roughly speaking, 'acceptable' means: it will run in a reasonable amount of time or space on an available computer, typically as a
478:
of the size of the input. Since the 1950s computers have seen dramatic increases in both the available computational power and in the available amount of memory, so current acceptable levels would have been unacceptable even 10 years ago. In fact, thanks to the
1565:. This is useful for comparing algorithms, especially when a large amount of data is to be processed. More detailed estimates are needed to compare algorithm performance when the amount of data is small, although this is likely to be of less importance.
1436:: how much working memory (typically RAM) is needed by the algorithm? This has two aspects: the amount of memory needed by the code (auxiliary space usage), and the amount of memory needed for the data on which the code operates (intrinsic space usage).
1213:" benchmarks can demonstrate the relative performance of different programming languages, using a variety of user specified criteria. This is quite simple, as a "Nine language performance roundup" by Christopher W. Cowell-Shah demonstrates by example.
509:
There are many ways in which the resources used by an algorithm can be measured: the two most common measures are speed and memory usage; other measures could include transmission speed, temporary disk usage, long-term disk usage, power consumption,
1744:, are the fastest memory with the least amount of space. Most direct computation on modern computers occurs with source and destination operands in registers before being updated to the cache, main memory and virtual memory if needed. On a
1879:
An algorithm whose memory needs will fit in cache memory will be much faster than an algorithm which fits in main memory, which in turn will be very much faster than an algorithm which has to resort to paging. Because of this,
518:
to external stimuli, etc. Many of these measures depend on the size of the input to the algorithm, i.e. the amount of data to be processed. They might also depend on the way in which the data is arranged; for example, some
1516:: space needed on a disk or other external memory device; this could be for temporary storage while the algorithm is being carried out, or it could be long-term storage needed to be carried forward for future reference.
448:
could use a fast algorithm using a lot of memory, or it could use a slow algorithm using little memory. The engineering trade-off was therefore to use the fastest algorithm that could fit in the available memory.
1862:
for a value in RAM. While originally motivated to create the impression of higher amounts of memory being available than were truly available, virtual memory is more important in contemporary usage for its
1603:
This sort of test also depends heavily on the selection of a particular programming language, compiler, and compiler options, so algorithms being compared must all be implemented under the same conditions.
2199:
Guy Lewis Steele, Jr. "Debunking the 'Expensive
Procedure Call' Myth, or, Procedure Call Implementations Considered Harmful, or, Lambda: The Ultimate GOTO". MIT AI Lab. AI Lab Memo AIM-443. October 1977.
1786:
must fetch the data from the cache, perform the operation in registers and write the data back to the cache. This operates at speeds comparable (about 2-10 times slower) with the CPU or GPU's
765:
when only a few items are to be sorted; however either implementation is likely to meet performance requirements for a small list. Typically, programmers are interested in algorithms that
1349:) may implement an instruction in different ways, so that instructions which are relatively fast on some models may be relatively slow on other models. This often presents challenges to
634:
1295:; it may or may not be easy for a programmer or compiler to use these capabilities. Algorithms designed for sequential processing may need to be completely redesigned to make use of
1373:
to produce a result that is otherwise incomputable on that platform, even if it is natively supported and more efficient in hardware on other platforms. This is often the case in
1221:
Implementation issues can also have an effect on efficiency, such as the choice of programming language, or the way in which the algorithm is actually coded, or the choice of a
464:"In established engineering disciplines a 12% improvement, easily obtained, is never considered marginal and I believe the same viewpoint should prevail in software engineering"
237:
complexity cannot be compared directly, so which of two algorithms is considered to be more efficient often depends on which measure of efficiency is considered most important.
1135:
1418:
1762:
is the second fastest, and second smallest, available in the memory hierarchy. Caches are present in processors such as CPUs or GPUs, where they are typically implemented in
978:
869:
502:. Software costs can be quite high, so in some cases the simplest and cheapest way of getting higher performance might be to just buy a faster computer, provided it is
1045:
365:
286:
921:
815:
696:
663:
543:, the normal practice is to estimate their complexity in the asymptotic sense. The most commonly used notation to describe resource consumption or "complexity" is
1707:
398:
323:
1388:
often lack hardware support for floating-point arithmetic and thus require computationally expensive software routines to produce floating point calculations.
2226:; Li, Sheng; Muralimanohar, Naveen; Peterson, Gregory D; Pinkston, Timothy Mark; Ranganathan, Prakash; Wood, David Allen; Young, Clifford; Zaky, Amr (2011).
1506:) can result in transmitting tens of thousands of bytes (48K in this case) compared with transmitting six bytes for the text "Google". This is important for
759:
739:
716:
569:
1202:
Some benchmarks provide opportunities for producing an analysis comparing the relative speed of various compiled and interpreted languages for example and
3297:
2277:
1689:
1357:
and other hardware available on the compilation target to best optimize a program for performance. In the extreme case, a compiler may be forced to
50:
1592:
Run-based profiling can be very sensitive to hardware configuration and the possibility of other programs or tasks running at the same time in a
769:
efficiently to large input sizes, and merge sort is preferred over bubble sort for lists of length encountered in most data-intensive programs.
2994:
2966:
1640:
analysis to get an estimate of the run-time memory needed as a function as the size of the input data. The result is normally expressed using
3019:
1265:
1203:
2870:
2012:
153:
145:
1561:, can be used to get an estimate of the running time as a function of the size of the input data. The result is normally expressed using
3024:
2296:
1589:
usage. For long-running algorithms the elapsed time could also be of interest. Results should generally be averaged over several tests.
1585:
can be used to assess the performance of an algorithm in practice. Many programming languages have an available function which provides
2529:
2235:
1858:
which allows use of a potentially larger storage space, at the cost of much higher latency, typically around 1000 times slower than a
97:
3463:
3176:
3004:
2534:
1469:
As of 2018, power consumption is growing as an important metric for computational tasks of all types and at all scales ranging from
1311:
171:
116:
1912:. An algorithm which will not fit completely in cache memory but which exhibits locality of reference may perform reasonably well.
69:
3264:
2358:
1967:
1828:) than an L3 CPU cache, with read and write latencies typically 10-100 times slower. As of 2018, RAM is increasingly implemented
1248:
There are other factors which may affect time or space issues, but which may be outside of a programmer's control; these include
3535:
2652:
1962:
1945:
1570:
1308:
1273:
528:
453:
400:). If large lists must be sorted at high speed for a given application, timsort is a better choice; however, if minimizing the
2905:
2222:; Bakos, Jason D; Colwell, Robert P; Bhattacharjee, Abhishek; Conte, Thomas M; Duato, José; Franklin, Diana; Goldberg, David;
76:
3545:
3408:
3290:
2943:
2562:
2270:
1157:
54:
1706:
Early electronic computers, and early home computers, had relatively small amounts of working memory. For example, the 1949
3540:
3428:
3423:
3085:
3062:
2792:
2782:
1269:
368:
252:
of items from smallest to largest. Bubble sort organizes the list in time proportional to the number of elements squared (
3166:
2754:
2662:
2567:
2343:
2328:
1933:
1753:
1697:
1338:
1074:
1001:
83:
3479:
3377:
3254:
2989:
2487:
1763:
1277:
1149:
1145:
3514:
3489:
3458:
3226:
2875:
1881:
1362:
515:
65:
1183:
product will best suit their specific requirements in terms of functionality and performance. For example, in the
452:
Modern computers are significantly faster than early computers and have a much larger amount of memory available (
43:
3550:
3337:
3283:
3244:
3171:
3146:
3009:
2657:
2263:
1378:
1331:
441:
3484:
3095:
2928:
2514:
2383:
1655:
1531:
1238:
1206:
compares the performance of implementations of typical programming problems in several programming languages.
578:
3398:
3156:
3090:
2981:
2797:
2457:
1354:
1234:
879:
511:
3433:
3413:
3221:
3052:
2933:
2700:
2685:
2027:
1956:
1921:
1766:, though they can also be found in peripherals such as disk drives. Processor caches often have their own
1633:
1554:
989:
540:
503:
475:
219:
1896:
data fit in cache memory; in this case minimizing space will also help minimize time. This is called the
930:
Finding an item in an unsorted list or a malformed tree (worst case) or in an unsorted array; Adding two
3191:
3161:
3151:
3047:
2961:
2837:
2777:
2744:
2734:
2617:
2582:
2572:
2509:
2378:
2353:
2348:
2313:
1939:
1927:
1901:
1897:
1787:
1783:
1582:
1523:
1304:
1257:
1226:
1175:
229:
For maximum efficiency it is desirable to minimize resource usage. However, different resources such as
200:
1091:
1748:, there are typically on the order of hundreds of bytes or fewer of register availability, although a
1399:
3362:
3352:
3342:
2951:
2923:
2895:
2890:
2719:
2695:
2647:
2630:
2625:
2607:
2597:
2592:
2554:
2504:
2499:
2416:
2362:
1950:
1779:
1621:
1242:
1188:
499:
437:
188:
2032:
90:
3216:
3141:
3057:
3042:
2807:
2587:
2544:
2539:
2436:
2426:
2398:
1864:
1791:
1527:
1507:
1382:
1370:
1366:
1350:
1153:
1062:
883:
718:
429:
192:
2157:(2016). "The (black) art of runtime evaluation: Are we comparing algorithms or implementations?".
3181:
3080:
2956:
2913:
2822:
2764:
2749:
2739:
2524:
2323:
2182:
2150:
2080:
2045:
1741:
1673:
1669:
1662:
1613:
1566:
1473:
1358:
1300:
1296:
1184:
1161:
935:
492:
2053:
1502:
can be used to reduce the amount of data to be transmitted. Displaying a picture or image (e.g.
945:
839:
3367:
3201:
3131:
3110:
3072:
2880:
2847:
2827:
2519:
2431:
2305:
2241:
2231:
2219:
2174:
1909:
1885:
1847:
1806:, and a further 10 times slower if there is an L2 cache miss and it must be retrieved from an
1715:
1617:
1597:
1179:
1014:
982:
666:
520:
249:
196:
1714:
came initially with 1024 8-bit bytes of working memory. In the late 2010s, it is typical for
3306:
3034:
2918:
2885:
2680:
2602:
2491:
2477:
2472:
2421:
2408:
2333:
2286:
2166:
2037:
1905:
1855:
1731:
1637:
1629:
1593:
1499:
1346:
1288:
1230:
1139:
873:
445:
401:
332:
234:
222:
used by the algorithm. Algorithmic efficiency can be thought of as analogous to engineering
207:
1337:
Another problem which can arise in programming is that processors compatible with the same
1178:
are sometimes used, which assist with gauging an algorithms relative performance. If a new
772:
Some examples of Big O notation applied to algorithms' asymptotic time complexity include:
3332:
3327:
3105:
2999:
2971:
2865:
2817:
2802:
2787:
2642:
2637:
2577:
2467:
2441:
2393:
2338:
2102:
1868:
1767:
1558:
1503:
1485:
1470:
1385:
1374:
1261:
897:
791:
672:
639:
488:
417:
293:
255:
230:
3372:
3211:
3115:
3014:
2860:
2832:
1889:
1843:
1829:
1775:
1685:
1672:
and do not need any additional space for output data. This property is referred to as "
1641:
1625:
1562:
1477:
1249:
1210:
1082:
1078:
1054:
1049:
548:
480:
289:
1989:
374:
299:
3529:
3100:
2388:
2223:
2081:"Floating Point Benchmark: Comparing Languages (Fourmilog: None Dare Call It Reason)"
2049:
1749:
1693:
1491:
Less common measures of computational efficiency may also be relevant in some cases:
1449:
1323:
1307:
grow in importance in the late 2010s, more investments are being made into efficient
887:
829:
819:
551:, representing the complexity of an algorithm as a function of the size of the input
523:
perform poorly on data which is already sorted, or which is sorted in reverse order.
2186:
761:
is large as the notation is asymptotic. For example, bubble sort may be faster than
17:
3453:
3403:
3196:
2855:
2154:
1839:
1771:
1710:(EDSAC) had a maximum working memory of 1024 17-bit words, while the 1980 Sinclair
1696:
during a calculation; this stack space can be significant for algorithms which use
825:
744:
724:
701:
554:
544:
457:
413:
326:
223:
1237:
may be much slower than a language implemented by a compiler. See the articles on
1174:
For new versions of software or to provide comparisons with competitive systems,
3357:
3347:
3186:
2812:
2724:
1817:
1813:
1481:
1253:
1066:
925:
766:
433:
241:
32:
3206:
3136:
2729:
2462:
2318:
2170:
1872:
1859:
1833:
1799:
1445:
1319:
1281:
1070:
1005:
762:
484:
2245:
2178:
824:
Finding the median from a sorted list of measurements; Using a constant-size
3393:
2711:
2672:
1959:—the practice of using empirical methods to study the behavior of algorithms
1851:
1759:
997:
572:
215:
2200:
1361:
instructions not supported on a compilation target platform, forcing it to
2041:
498:
Computer manufacturers frequently bring out new models, often with higher
2772:
1825:
1821:
1807:
1803:
1795:
1745:
1719:
1586:
1222:
1192:
993:
1396:
Measures are normally expressed as a function of the size of the input
636:
roughly means the time requirement for an algorithm is proportional to
329:(proportional to a quantity times its logarithm) in the list's length (
245:
2126:"Nine Language Performance Round-up: Benchmarking Math & File I/O"
1540:: particularly if a computer is dedicated to one particular algorithm.
1681:
The amount of memory needed as working space during the calculation.
1632:) while the algorithm is being executed. As for time analysis above,
1441:
1342:
1327:
1970:—methods of measuring actual performance of an algorithm at run-time
1930:—a method for measuring comparative execution times in defined cases
412:
The importance of efficiency with respect to time was emphasized by
3275:
2255:
2125:
404:
of the sorting is more important, bubble sort is a better choice.
1936:—considerations for estimating execution times in three scenarios
1711:
1315:
1292:
460:
emphasized that efficiency is still an important consideration:
3279:
2259:
1651:
The amount of memory needed to hold the code for the algorithm.
1884:
are extremely important to high-performance computing, as are
1722:
of RAM, an increase of over 300 million times as much memory.
1196:
128:
26:
187:
Not to be confused with optimization, which is discussed in
1647:
There are up to four aspects of memory usage to consider:
296:
which is constant with respect to the length of the list (
1440:
For computers whose power is supplied by a battery (e.g.
1612:
This section is concerned with use of memory resources (
1314:
for parallel and distributed computing systems such as
1233:
being used. In many cases a language implemented by an
1195:
compete with products from the major suppliers such as
1924:—how to determine the resources needed by an algorithm
1756:
registers defined in the instruction set architecture.
1403:
1353:, which must have extensive knowledge of the specific
747:
741:
is small, but is generally sufficiently accurate when
727:
704:
581:
557:
491:
may have been unacceptably inefficient for industrial
377:
335:
302:
258:
1402:
1191:
products from independent software companies such as
1094:
1017:
948:
900:
842:
794:
675:
642:
1158:
determining if two logical statements are equivalent
481:
approximate doubling of computer power every 2 years
3472:
3446:
3386:
3320:
3313:
3124:
3071:
3033:
2980:
2942:
2904:
2846:
2763:
2709:
2671:
2616:
2553:
2486:
2450:
2407:
2371:
2304:
1875:, and incur huge performance penalties on programs.
57:. Unsourced material may be challenged and removed.
2213:
2211:
2209:
2207:
1820:(DRAM). The main memory is much larger (typically
1782:. In order to process operands in cache memory, a
1412:
1293:single instruction to operate on multiple operands
1129:
1039:
972:
915:
863:
809:
753:
733:
710:
690:
657:
628:
563:
392:
359:
317:
280:
1802:and it must be retrieved from and written to the
1798:. It is about 10 times slower if there is an L1
1770:; lower levels are larger, slower and typically
1459:: power needed directly to operate the computer.
483:, tasks that are acceptably efficient on modern
1430:: how long does the algorithm take to complete?
2228:Computer Architecture: a Quantitative Approach
2075:
2073:
2013:"Structured Programming with go-to Statements"
3291:
2295:Note: This template roughly follows the 2012
2271:
1708:Electronic Delay Storage Automatic Calculator
1448:), or for very long/large calculations (e.g.
621:
602:
292:), but only requires a small amount of extra
8:
1871:. Cache misses from main memory are called
1299:, or they could be easily reconfigured. As
3317:
3298:
3284:
3276:
2278:
2264:
2256:
1465:: power needed for cooling, lighting, etc.
1276:(at either a hardware or software level),
1117:
2031:
1752:may contain more physical registers than
1404:
1401:
1105:
1093:
1028:
1016:
947:
899:
878:Finding an item in a sorted array with a
841:
793:
746:
726:
703:
674:
641:
629:{\textstyle f(n)=O{\bigl (}g(n){\bigr )}}
620:
619:
601:
600:
580:
556:
376:
334:
301:
269:
257:
172:Learn how and when to remove this message
117:Learn how and when to remove this message
1668:Some algorithms, such as sorting, often
1498:: bandwidth could be a limiting factor.
774:
1980:
721:. This estimate may be misleading when
226:for a repeating or continuous process.
2995:Knowledge representation and reasoning
2218:Hennessy, John L; Patterson, David A;
1532:respond quickly to some external event
1526:): this is particularly relevant in a
1287:Some processors have capabilities for
1069:(worst case or naive implementation),
575:measure of function complexity, where
3020:Philosophy of artificial intelligence
1991:Classics in the History of Psychology
1484:. This trend is often referred to as
1204:The Computer Language Benchmarks Game
7:
3510:
2339:Energy consumption (Green computing)
2230:(Sixth ed.). Elsevier Science.
1661:The amount of memory needed for any
1654:The amount of memory needed for the
55:adding citations to reliable sources
3025:Distributed artificial intelligence
2297:ACM Computing Classification System
1452:), other measures of interest are:
2530:Integrated development environment
1423:The two most common measures are:
1225:for a particular language, or the
325:). Timsort sorts the list in time
144:tone or style may not reflect the
25:
3464:List of system quality attributes
3005:Automated planning and scheduling
2535:Software configuration management
2159:Knowledge and Information Systems
1130:{\displaystyle O(c^{n}),\;c>1}
698:to the growth of the function as
420:'s mechanical analytical engine:
3509:
3503:
3502:
3259:
3249:
3240:
3239:
1846:management, is memory stored in
1557:, typically using concepts like
1413:{\displaystyle \scriptstyle {n}}
154:guide to writing better articles
133:
31:
3250:
2653:Computational complexity theory
1963:Optimization (computer science)
1946:Computational complexity theory
1636:the algorithm, typically using
886:as well as all operations in a
367:), but has a space requirement
218:which relates to the amount of
42:needs additional citations for
2437:Network performance evaluation
1942:—compiler-derived optimization
1530:when the computer system must
1111:
1098:
1034:
1021:
967:
952:
910:
904:
858:
846:
804:
798:
685:
679:
652:
646:
616:
610:
591:
585:
454:gigabytes instead of kilobytes
387:
381:
354:
339:
312:
306:
275:
262:
1:
2808:Multimedia information system
2793:Geographic information system
2783:Enterprise information system
2372:Computer systems organization
2103:"Whetstone Benchmark History"
2083:. Fourmilab.ch. 4 August 2005
1900:, and can be subdivided into
1854:, and is an extension to the
1816:is most often implemented in
1270:instruction-level parallelism
3167:Computational social science
2755:Theoretical computer science
2568:Software development process
2344:Electronic design automation
2329:Very Large Scale Integration
1934:Best, worst and average case
1726:Caching and memory hierarchy
3480:Software quality management
3459:Non-functional requirements
2990:Natural language processing
2778:Information storage systems
1150:travelling salesman problem
985:, loglinear, or quasilinear
506:with an existing computer.
371:in the length of the list (
3567:
3490:Software quality assurance
2906:Human–computer interaction
2876:Intrusion detection system
2788:Social information systems
2773:Database management system
1953:—computer hardware metrics
1882:cache replacement policies
1867:and enabling the usage of
1729:
1463:Indirect power consumption
1392:Measures of resource usage
1187:world certain proprietary
973:{\displaystyle O(n\log n)}
669:that contribute less than
186:
3498:
3235:
3172:Computational engineering
3147:Computational mathematics
2293:
2171:10.1007/s10115-016-1004-2
1832:of processors, as CPU or
1718:to have between 4 and 32
1571:more difficult to analyze
1379:floating-point arithmetic
1278:simultaneous multitasking
1144:Finding the optimal (non-
864:{\displaystyle O(\log n)}
250:algorithms to sort a list
3485:Software quality control
3182:Computational healthcare
3177:Differentiable computing
3096:Graphics processing unit
2515:Domain-specific language
2384:Computational complexity
1670:rearrange the input data
1457:Direct power consumption
1239:just-in-time compilation
1040:{\displaystyle O(n^{2})}
832:for looking up an item.
184:Property of an algorithm
66:"Algorithmic efficiency"
3157:Computational chemistry
3091:Photograph manipulation
2982:Artificial intelligence
2798:Decision support system
1886:cache-aware programming
1538:Total cost of ownership
1217:Implementation concerns
719:grows arbitrarily large
571:. Big O notation is an
512:total cost of ownership
360:{\textstyle O(n\log n)}
220:computational resources
148:used on Knowledge (XXG)
3536:Analysis of algorithms
3222:Educational technology
3053:Reinforcement learning
2803:Process control system
2701:Computational geometry
2691:Algorithmic efficiency
2686:Analysis of algorithms
2334:Systems on Chip (SoCs)
2105:. Roylongbottom.org.uk
2011:Knuth, Donald (1974),
1957:Empirical algorithmics
1922:Analysis of algorithms
1555:Analysis of algorithms
1414:
1131:
1041:
990:Fast Fourier transform
974:
917:
865:
811:
755:
735:
712:
692:
659:
630:
565:
541:analysis of algorithms
466:
426:
416:in 1843 as applied to
394:
361:
319:
282:
212:algorithmic efficiency
152:See Knowledge (XXG)'s
3546:Software optimization
3192:Electronic publishing
3162:Computational biology
3152:Computational physics
3048:Unsupervised learning
2962:Distributed computing
2838:Information retrieval
2745:Mathematical analysis
2735:Mathematical software
2618:Theory of computation
2583:Software construction
2573:Requirements analysis
2451:Software organization
2379:Computer architecture
2349:Hardware acceleration
2314:Printed circuit board
2042:10.1145/356635.356640
1940:Compiler optimization
1902:locality of reference
1898:principle of locality
1788:arithmetic logic unit
1780:multi-core processors
1768:multi-level hierarchy
1730:Further information:
1528:real-time application
1415:
1305:distributed computing
1243:interpreted languages
1170:Measuring performance
1132:
1042:
1002:best and average case
975:
918:
882:or a balanced search
866:
812:
756:
736:
713:
693:
660:
631:
566:
462:
422:
395:
362:
320:
283:
281:{\textstyle O(n^{2})}
201:object code optimizer
3541:Computer performance
2952:Concurrent computing
2924:Ubiquitous computing
2896:Application security
2891:Information security
2720:Discrete mathematics
2696:Randomized algorithm
2648:Computability theory
2626:Model of computation
2598:Software maintenance
2593:Software engineering
2555:Software development
2505:Programming language
2500:Programming paradigm
2417:Network architecture
1988:Green, Christopher,
1968:Performance analysis
1951:Computer performance
1814:Main physical memory
1400:
1351:optimizing compilers
1092:
1015:
946:
916:{\displaystyle O(n)}
898:
840:
810:{\displaystyle O(1)}
792:
745:
725:
702:
691:{\displaystyle g(n)}
673:
658:{\displaystyle g(n)}
640:
579:
555:
535:Theoretical analysis
442:space–time trade-off
438:random access memory
430:electronic computers
375:
333:
300:
256:
214:is a property of an
189:program optimization
51:improve this article
18:Algorithm efficiency
3447:Standards and lists
3227:Document management
3217:Operations research
3142:Enterprise software
3058:Multi-task learning
3043:Supervised learning
2765:Information systems
2588:Software deployment
2545:Software repository
2399:Real-time computing
2153:; Schubert, Erich;
2151:Kriegel, Hans-Peter
1865:time-space tradeoff
1792:floating-point unit
1742:Processor registers
1567:Parallel algorithms
1508:I/O bound computing
1297:parallel processing
1227:compilation options
1154:dynamic programming
828:; Using a suitable
539:In the theoretical
193:optimizing compiler
3010:Search methodology
2957:Parallel computing
2914:Interaction design
2823:Computing platform
2750:Numerical analysis
2740:Information theory
2525:Software framework
2488:Software notations
2427:Network components
2324:Integrated circuit
1716:personal computers
1690:stack space needed
1474:Internet of things
1410:
1409:
1381:, where small and
1266:garbage collection
1229:used, or even the
1162:brute-force search
1148:) solution to the
1127:
1063:a simple algorithm
1061:-digit numbers by
1037:
970:
913:
861:
807:
751:
731:
708:
688:
655:
626:
561:
521:sorting algorithms
390:
357:
315:
278:
3523:
3522:
3442:
3441:
3368:Understandability
3273:
3272:
3202:Electronic voting
3132:Quantum Computing
3125:Applied computing
3111:Image compression
2881:Hardware security
2871:Security services
2828:Digital marketing
2608:Open-source model
2520:Modeling language
2432:Network scheduler
2059:on 24 August 2009
2020:Computing Surveys
1910:temporal locality
1848:secondary storage
1842:, often used for
1598:multi-programming
1496:Transmission size
1289:vector processing
1167:
1166:
934:-bit integers by
667:lower-order terms
456:). Nevertheless,
432:had both limited
393:{\textstyle O(n)}
318:{\textstyle O(1)}
197:loop optimization
182:
181:
174:
146:encyclopedic tone
127:
126:
119:
101:
16:(Redirected from
3558:
3551:Software quality
3513:
3512:
3506:
3505:
3318:
3307:Software quality
3300:
3293:
3286:
3277:
3263:
3262:
3253:
3252:
3243:
3242:
3063:Cross-validation
3035:Machine learning
2919:Social computing
2886:Network security
2681:Algorithm design
2603:Programming team
2563:Control variable
2540:Software library
2478:Software quality
2473:Operating system
2422:Network protocol
2287:Computer science
2280:
2273:
2266:
2257:
2250:
2249:
2224:Jouppi, Norman P
2215:
2202:
2197:
2191:
2190:
2147:
2141:
2140:
2138:
2136:
2121:
2115:
2114:
2112:
2110:
2099:
2093:
2092:
2090:
2088:
2077:
2068:
2067:
2066:
2064:
2058:
2052:, archived from
2035:
2017:
2008:
2002:
2001:
2000:
1998:
1985:
1906:spatial locality
1869:virtual machines
1856:memory hierarchy
1732:Memory hierarchy
1638:space complexity
1630:secondary memory
1594:multi-processing
1500:Data compression
1419:
1417:
1416:
1411:
1408:
1386:microcontrollers
1377:with respect to
1375:embedded systems
1291:, which allow a
1254:data granularity
1231:operating system
1136:
1134:
1133:
1128:
1110:
1109:
1046:
1044:
1043:
1038:
1033:
1032:
979:
977:
976:
971:
922:
920:
919:
914:
870:
868:
867:
862:
816:
814:
813:
808:
775:
760:
758:
757:
752:
740:
738:
737:
732:
717:
715:
714:
709:
697:
695:
694:
689:
664:
662:
661:
656:
635:
633:
632:
627:
625:
624:
606:
605:
570:
568:
567:
562:
489:embedded systems
402:memory footprint
399:
397:
396:
391:
366:
364:
363:
358:
324:
322:
321:
316:
287:
285:
284:
279:
274:
273:
208:computer science
177:
170:
166:
163:
157:
156:for suggestions.
137:
136:
129:
122:
115:
111:
108:
102:
100:
59:
35:
27:
21:
3566:
3565:
3561:
3560:
3559:
3557:
3556:
3555:
3526:
3525:
3524:
3519:
3494:
3468:
3438:
3382:
3333:Maintainability
3309:
3304:
3274:
3269:
3260:
3231:
3212:Word processing
3120:
3106:Virtual reality
3067:
3029:
3000:Computer vision
2976:
2972:Multiprocessing
2938:
2900:
2866:Security hacker
2842:
2818:Digital library
2759:
2710:Mathematics of
2705:
2667:
2643:Automata theory
2638:Formal language
2612:
2578:Software design
2549:
2482:
2468:Virtual machine
2446:
2442:Network service
2403:
2394:Embedded system
2367:
2300:
2289:
2284:
2254:
2253:
2238:
2220:Asanović, Krste
2217:
2216:
2205:
2198:
2194:
2149:
2148:
2144:
2134:
2132:
2123:
2122:
2118:
2108:
2106:
2101:
2100:
2096:
2086:
2084:
2079:
2078:
2071:
2062:
2060:
2056:
2033:10.1.1.103.6084
2015:
2010:
2009:
2005:
1996:
1994:
1987:
1986:
1982:
1977:
1918:
1824:compared to ≈8
1784:processing unit
1776:processor cores
1734:
1728:
1694:routines called
1686:local variables
1610:
1579:
1559:time complexity
1552:
1547:
1486:green computing
1398:
1397:
1394:
1339:instruction set
1274:multi-threading
1262:cache coherency
1219:
1209:Even creating "
1172:
1101:
1090:
1089:
1024:
1013:
1012:
944:
943:
896:
895:
838:
837:
790:
789:
743:
742:
723:
722:
700:
699:
671:
670:
638:
637:
577:
576:
553:
552:
537:
471:
440:. Therefore, a
418:Charles Babbage
410:
373:
372:
331:
330:
298:
297:
265:
254:
253:
204:
185:
178:
167:
161:
158:
151:
142:This article's
138:
134:
123:
112:
106:
103:
60:
58:
48:
36:
23:
22:
15:
12:
11:
5:
3564:
3562:
3554:
3553:
3548:
3543:
3538:
3528:
3527:
3521:
3520:
3518:
3517:
3507:
3499:
3496:
3495:
3493:
3492:
3487:
3482:
3476:
3474:
3470:
3469:
3467:
3466:
3461:
3456:
3450:
3448:
3444:
3443:
3440:
3439:
3437:
3436:
3431:
3426:
3421:
3416:
3411:
3406:
3401:
3396:
3390:
3388:
3384:
3383:
3381:
3380:
3375:
3373:Loose coupling
3370:
3365:
3360:
3355:
3350:
3345:
3340:
3335:
3330:
3324:
3322:
3315:
3311:
3310:
3305:
3303:
3302:
3295:
3288:
3280:
3271:
3270:
3268:
3267:
3257:
3247:
3236:
3233:
3232:
3230:
3229:
3224:
3219:
3214:
3209:
3204:
3199:
3194:
3189:
3184:
3179:
3174:
3169:
3164:
3159:
3154:
3149:
3144:
3139:
3134:
3128:
3126:
3122:
3121:
3119:
3118:
3116:Solid modeling
3113:
3108:
3103:
3098:
3093:
3088:
3083:
3077:
3075:
3069:
3068:
3066:
3065:
3060:
3055:
3050:
3045:
3039:
3037:
3031:
3030:
3028:
3027:
3022:
3017:
3015:Control method
3012:
3007:
3002:
2997:
2992:
2986:
2984:
2978:
2977:
2975:
2974:
2969:
2967:Multithreading
2964:
2959:
2954:
2948:
2946:
2940:
2939:
2937:
2936:
2931:
2926:
2921:
2916:
2910:
2908:
2902:
2901:
2899:
2898:
2893:
2888:
2883:
2878:
2873:
2868:
2863:
2861:Formal methods
2858:
2852:
2850:
2844:
2843:
2841:
2840:
2835:
2833:World Wide Web
2830:
2825:
2820:
2815:
2810:
2805:
2800:
2795:
2790:
2785:
2780:
2775:
2769:
2767:
2761:
2760:
2758:
2757:
2752:
2747:
2742:
2737:
2732:
2727:
2722:
2716:
2714:
2707:
2706:
2704:
2703:
2698:
2693:
2688:
2683:
2677:
2675:
2669:
2668:
2666:
2665:
2660:
2655:
2650:
2645:
2640:
2635:
2634:
2633:
2622:
2620:
2614:
2613:
2611:
2610:
2605:
2600:
2595:
2590:
2585:
2580:
2575:
2570:
2565:
2559:
2557:
2551:
2550:
2548:
2547:
2542:
2537:
2532:
2527:
2522:
2517:
2512:
2507:
2502:
2496:
2494:
2484:
2483:
2481:
2480:
2475:
2470:
2465:
2460:
2454:
2452:
2448:
2447:
2445:
2444:
2439:
2434:
2429:
2424:
2419:
2413:
2411:
2405:
2404:
2402:
2401:
2396:
2391:
2386:
2381:
2375:
2373:
2369:
2368:
2366:
2365:
2356:
2351:
2346:
2341:
2336:
2331:
2326:
2321:
2316:
2310:
2308:
2302:
2301:
2294:
2291:
2290:
2285:
2283:
2282:
2275:
2268:
2260:
2252:
2251:
2237:978-0128119051
2236:
2203:
2192:
2165:(2): 341–378.
2142:
2124:OSNews Staff.
2116:
2094:
2069:
2026:(4): 261–301,
2003:
1979:
1978:
1976:
1973:
1972:
1971:
1965:
1960:
1954:
1948:
1943:
1937:
1931:
1925:
1917:
1914:
1890:data alignment
1877:
1876:
1844:virtual memory
1837:
1811:
1757:
1746:processor core
1727:
1724:
1704:
1703:
1702:
1701:
1684:This includes
1679:
1678:
1677:
1659:
1652:
1642:Big O notation
1626:virtual memory
1609:
1606:
1578:
1575:
1563:Big O notation
1551:
1548:
1546:
1543:
1542:
1541:
1535:
1517:
1514:External space
1511:
1478:system-on-chip
1467:
1466:
1460:
1450:supercomputers
1438:
1437:
1431:
1407:
1393:
1390:
1258:cache locality
1250:data alignment
1218:
1215:
1211:do it yourself
1180:sort algorithm
1171:
1168:
1165:
1164:
1142:
1137:
1126:
1123:
1120:
1116:
1113:
1108:
1104:
1100:
1097:
1086:
1085:
1083:insertion sort
1079:selection sort
1052:
1047:
1036:
1031:
1027:
1023:
1020:
1009:
1008:
986:
980:
969:
966:
963:
960:
957:
954:
951:
940:
939:
928:
923:
912:
909:
906:
903:
892:
891:
876:
871:
860:
857:
854:
851:
848:
845:
834:
833:
822:
817:
806:
803:
800:
797:
786:
785:
782:
779:
754:{\textstyle n}
750:
734:{\textstyle n}
730:
711:{\textstyle n}
707:
687:
684:
681:
678:
654:
651:
648:
645:
623:
618:
615:
612:
609:
604:
599:
596:
593:
590:
587:
584:
564:{\textstyle n}
560:
549:Big O notation
536:
533:
495:10 years ago.
470:
467:
409:
406:
389:
386:
383:
380:
356:
353:
350:
347:
344:
341:
338:
314:
311:
308:
305:
290:Big O notation
277:
272:
268:
264:
261:
183:
180:
179:
141:
139:
132:
125:
124:
39:
37:
30:
24:
14:
13:
10:
9:
6:
4:
3:
2:
3563:
3552:
3549:
3547:
3544:
3542:
3539:
3537:
3534:
3533:
3531:
3516:
3508:
3501:
3500:
3497:
3491:
3488:
3486:
3483:
3481:
3478:
3477:
3475:
3471:
3465:
3462:
3460:
3457:
3455:
3452:
3451:
3449:
3445:
3435:
3432:
3430:
3427:
3425:
3422:
3420:
3417:
3415:
3412:
3410:
3407:
3405:
3402:
3400:
3397:
3395:
3392:
3391:
3389:
3385:
3379:
3378:Orthogonality
3376:
3374:
3371:
3369:
3366:
3364:
3361:
3359:
3356:
3354:
3351:
3349:
3346:
3344:
3341:
3339:
3336:
3334:
3331:
3329:
3326:
3325:
3323:
3319:
3316:
3312:
3308:
3301:
3296:
3294:
3289:
3287:
3282:
3281:
3278:
3266:
3258:
3256:
3248:
3246:
3238:
3237:
3234:
3228:
3225:
3223:
3220:
3218:
3215:
3213:
3210:
3208:
3205:
3203:
3200:
3198:
3195:
3193:
3190:
3188:
3185:
3183:
3180:
3178:
3175:
3173:
3170:
3168:
3165:
3163:
3160:
3158:
3155:
3153:
3150:
3148:
3145:
3143:
3140:
3138:
3135:
3133:
3130:
3129:
3127:
3123:
3117:
3114:
3112:
3109:
3107:
3104:
3102:
3101:Mixed reality
3099:
3097:
3094:
3092:
3089:
3087:
3084:
3082:
3079:
3078:
3076:
3074:
3070:
3064:
3061:
3059:
3056:
3054:
3051:
3049:
3046:
3044:
3041:
3040:
3038:
3036:
3032:
3026:
3023:
3021:
3018:
3016:
3013:
3011:
3008:
3006:
3003:
3001:
2998:
2996:
2993:
2991:
2988:
2987:
2985:
2983:
2979:
2973:
2970:
2968:
2965:
2963:
2960:
2958:
2955:
2953:
2950:
2949:
2947:
2945:
2941:
2935:
2934:Accessibility
2932:
2930:
2929:Visualization
2927:
2925:
2922:
2920:
2917:
2915:
2912:
2911:
2909:
2907:
2903:
2897:
2894:
2892:
2889:
2887:
2884:
2882:
2879:
2877:
2874:
2872:
2869:
2867:
2864:
2862:
2859:
2857:
2854:
2853:
2851:
2849:
2845:
2839:
2836:
2834:
2831:
2829:
2826:
2824:
2821:
2819:
2816:
2814:
2811:
2809:
2806:
2804:
2801:
2799:
2796:
2794:
2791:
2789:
2786:
2784:
2781:
2779:
2776:
2774:
2771:
2770:
2768:
2766:
2762:
2756:
2753:
2751:
2748:
2746:
2743:
2741:
2738:
2736:
2733:
2731:
2728:
2726:
2723:
2721:
2718:
2717:
2715:
2713:
2708:
2702:
2699:
2697:
2694:
2692:
2689:
2687:
2684:
2682:
2679:
2678:
2676:
2674:
2670:
2664:
2661:
2659:
2656:
2654:
2651:
2649:
2646:
2644:
2641:
2639:
2636:
2632:
2629:
2628:
2627:
2624:
2623:
2621:
2619:
2615:
2609:
2606:
2604:
2601:
2599:
2596:
2594:
2591:
2589:
2586:
2584:
2581:
2579:
2576:
2574:
2571:
2569:
2566:
2564:
2561:
2560:
2558:
2556:
2552:
2546:
2543:
2541:
2538:
2536:
2533:
2531:
2528:
2526:
2523:
2521:
2518:
2516:
2513:
2511:
2508:
2506:
2503:
2501:
2498:
2497:
2495:
2493:
2489:
2485:
2479:
2476:
2474:
2471:
2469:
2466:
2464:
2461:
2459:
2456:
2455:
2453:
2449:
2443:
2440:
2438:
2435:
2433:
2430:
2428:
2425:
2423:
2420:
2418:
2415:
2414:
2412:
2410:
2406:
2400:
2397:
2395:
2392:
2390:
2389:Dependability
2387:
2385:
2382:
2380:
2377:
2376:
2374:
2370:
2364:
2360:
2357:
2355:
2352:
2350:
2347:
2345:
2342:
2340:
2337:
2335:
2332:
2330:
2327:
2325:
2322:
2320:
2317:
2315:
2312:
2311:
2309:
2307:
2303:
2298:
2292:
2288:
2281:
2276:
2274:
2269:
2267:
2262:
2261:
2258:
2247:
2243:
2239:
2233:
2229:
2225:
2221:
2214:
2212:
2210:
2208:
2204:
2201:
2196:
2193:
2188:
2184:
2180:
2176:
2172:
2168:
2164:
2160:
2156:
2155:Zimek, Arthur
2152:
2146:
2143:
2131:
2127:
2120:
2117:
2104:
2098:
2095:
2082:
2076:
2074:
2070:
2055:
2051:
2047:
2043:
2039:
2034:
2029:
2025:
2021:
2014:
2007:
2004:
1993:
1992:
1984:
1981:
1974:
1969:
1966:
1964:
1961:
1958:
1955:
1952:
1949:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1919:
1915:
1913:
1911:
1907:
1903:
1899:
1893:
1891:
1887:
1883:
1874:
1870:
1866:
1861:
1857:
1853:
1849:
1845:
1841:
1838:
1835:
1831:
1827:
1823:
1819:
1815:
1812:
1810:, if present.
1809:
1805:
1801:
1797:
1793:
1789:
1785:
1781:
1777:
1773:
1769:
1765:
1761:
1758:
1755:
1754:architectural
1751:
1750:register file
1747:
1743:
1740:
1739:
1738:
1733:
1725:
1723:
1721:
1717:
1713:
1709:
1699:
1695:
1691:
1687:
1683:
1682:
1680:
1675:
1671:
1667:
1666:
1664:
1660:
1657:
1653:
1650:
1649:
1648:
1645:
1643:
1639:
1635:
1631:
1627:
1623:
1619:
1615:
1607:
1605:
1601:
1600:environment.
1599:
1595:
1590:
1588:
1584:
1576:
1574:
1572:
1568:
1564:
1560:
1556:
1549:
1544:
1539:
1536:
1533:
1529:
1525:
1521:
1520:Response time
1518:
1515:
1512:
1509:
1505:
1501:
1497:
1494:
1493:
1492:
1489:
1487:
1483:
1479:
1475:
1472:
1464:
1461:
1458:
1455:
1454:
1453:
1451:
1447:
1443:
1435:
1432:
1429:
1426:
1425:
1424:
1421:
1405:
1391:
1389:
1387:
1384:
1380:
1376:
1372:
1368:
1364:
1363:generate code
1360:
1356:
1352:
1348:
1344:
1340:
1335:
1333:
1329:
1325:
1321:
1317:
1313:
1310:
1306:
1302:
1298:
1294:
1290:
1285:
1283:
1279:
1275:
1271:
1267:
1263:
1259:
1255:
1251:
1246:
1244:
1240:
1236:
1232:
1228:
1224:
1216:
1214:
1212:
1207:
1205:
1200:
1198:
1194:
1190:
1186:
1181:
1177:
1169:
1163:
1159:
1155:
1151:
1147:
1143:
1141:
1138:
1124:
1121:
1118:
1114:
1106:
1102:
1095:
1088:
1087:
1084:
1080:
1076:
1073:, quicksort (
1072:
1068:
1064:
1060:
1056:
1053:
1051:
1048:
1029:
1025:
1018:
1011:
1010:
1007:
1003:
999:
995:
991:
988:Performing a
987:
984:
981:
964:
961:
958:
955:
949:
942:
941:
937:
933:
929:
927:
924:
907:
901:
894:
893:
889:
888:Binomial heap
885:
881:
880:binary search
877:
875:
872:
855:
852:
849:
843:
836:
835:
831:
830:hash function
827:
823:
821:
818:
801:
795:
788:
787:
783:
780:
777:
776:
773:
770:
768:
764:
748:
728:
720:
705:
682:
676:
668:
649:
643:
613:
607:
597:
594:
588:
582:
574:
558:
550:
546:
542:
534:
532:
530:
524:
522:
517:
516:response time
513:
507:
505:
501:
496:
494:
490:
486:
482:
477:
468:
465:
461:
459:
455:
450:
447:
443:
439:
435:
431:
425:
421:
419:
415:
407:
405:
403:
384:
378:
370:
351:
348:
345:
342:
336:
328:
309:
303:
295:
291:
270:
266:
259:
251:
247:
243:
240:For example,
238:
236:
232:
227:
225:
221:
217:
213:
209:
202:
198:
194:
190:
176:
173:
165:
155:
149:
147:
140:
131:
130:
121:
118:
110:
99:
96:
92:
89:
85:
82:
78:
75:
71:
68: –
67:
63:
62:Find sources:
56:
52:
46:
45:
40:This article
38:
34:
29:
28:
19:
3454:ISO/IEC 9126
3418:
3404:Adaptability
3197:Cyberwarfare
2856:Cryptography
2690:
2227:
2195:
2162:
2158:
2145:
2135:18 September
2133:. Retrieved
2129:
2119:
2107:. Retrieved
2097:
2085:. Retrieved
2061:, retrieved
2054:the original
2023:
2019:
2006:
1995:, retrieved
1990:
1983:
1894:
1878:
1840:Paged memory
1760:Cache memory
1735:
1705:
1676:" operation.
1646:
1611:
1602:
1591:
1580:
1553:
1537:
1519:
1513:
1495:
1490:
1482:server farms
1468:
1462:
1456:
1439:
1433:
1427:
1422:
1395:
1371:library call
1369:an external
1336:
1286:
1247:
1220:
1208:
1201:
1173:
1058:
983:linearithmic
936:ripple carry
931:
826:lookup table
771:
545:Donald Knuth
538:
529:optimization
525:
508:
497:
472:
463:
458:Donald Knuth
451:
444:occurred. A
436:and limited
427:
423:
414:Ada Lovelace
411:
327:linearithmic
239:
228:
224:productivity
211:
205:
168:
162:January 2024
159:
143:
113:
107:January 2024
104:
94:
87:
80:
73:
61:
49:Please help
44:verification
41:
3409:Correctness
3399:Reliability
3363:Testability
3358:Scalability
3353:Readability
3348:Reusability
3343:Portability
3338:Flexibility
3207:Video games
3187:Digital art
2944:Concurrency
2813:Data mining
2725:Probability
2458:Interpreter
2109:14 December
2087:14 December
1873:page faults
1818:dynamic RAM
1700:techniques.
1663:output data
1504:Google logo
1480:devices to
1476:devices to
1446:smartphones
1235:interpreter
1199:for speed.
1146:approximate
1140:exponential
1067:bubble sort
1055:Multiplying
874:logarithmic
665:, omitting
500:performance
485:smartphones
242:bubble sort
3530:Categories
3424:Robustness
3419:Efficiency
3265:Glossaries
3137:E-commerce
2730:Statistics
2673:Algorithms
2631:Stochastic
2463:Middleware
2319:Peripheral
2130:osnews.com
1975:References
1860:cache miss
1850:such as a
1834:GPU memory
1800:cache miss
1794:if in the
1764:static RAM
1656:input data
1320:TensorFlow
1309:high-level
1282:subroutine
1176:benchmarks
1075:worst case
1071:Shell sort
1006:merge sort
763:merge sort
573:asymptotic
504:compatible
408:Background
77:newspapers
3473:Processes
3394:Usability
3314:Qualities
3086:Rendering
3081:Animation
2712:computing
2663:Semantics
2354:Processor
2246:983459758
2179:0219-1377
2050:207630080
2028:CiteSeerX
1928:Benchmark
1852:hard disk
1826:megabytes
1822:gigabytes
1698:recursive
1614:registers
1583:benchmark
1383:low-power
1341:(such as
1185:mainframe
1050:quadratic
998:quicksort
962:
853:
784:Examples
349:
248:are both
216:algorithm
3429:Security
3414:Accuracy
3387:External
3321:Internal
3245:Category
3073:Graphics
2848:Security
2510:Compiler
2409:Networks
2306:Hardware
2187:40772241
1916:See also
1808:L3 cache
1804:L2 cache
1796:L1 cache
1774:between
1688:and any
1674:in-place
1587:CPU time
1577:Practice
1471:embedded
1301:parallel
1223:compiler
1193:Syncsort
994:heapsort
820:constant
778:Notation
531:issues.
476:function
469:Overview
3515:Commons
3255:Outline
1830:on-chip
1634:analyze
1569:may be
1524:latency
1442:laptops
1359:emulate
1284:calls.
493:servers
246:timsort
203:, etc..
91:scholar
3434:Safety
2244:
2234:
2185:
2177:
2063:19 May
2048:
2030:
1997:19 May
1908:, and
1772:shared
1550:Theory
1510:tasks.
1343:x86-64
1328:OpenMP
1324:Hadoop
1280:, and
1160:using
1152:using
1004:), or
926:linear
428:Early
369:linear
294:memory
288:, see
93:
86:
79:
72:
64:
2658:Logic
2492:tools
2183:S2CID
2057:(PDF)
2046:S2CID
2016:(PDF)
1618:cache
1608:Space
1434:Space
767:scale
434:speed
235:space
98:JSTOR
84:books
3328:Size
2490:and
2363:Form
2359:Size
2242:OCLC
2232:ISBN
2175:ISSN
2137:2018
2111:2011
2089:2011
2065:2013
1999:2013
1888:and
1712:ZX80
1596:and
1545:Time
1444:and
1428:Time
1367:link
1330:and
1316:CUDA
1312:APIs
1303:and
1241:and
1189:sort
1122:>
1057:two
884:tree
781:Name
487:and
446:task
244:and
233:and
231:time
70:news
2167:doi
2038:doi
1790:or
1778:in
1692:by
1622:RAM
1365:or
1355:CPU
1347:ARM
1345:or
1332:MPI
1197:IBM
1081:or
1077:),
959:log
850:log
547:'s
346:log
206:In
53:by
3532::
2361:/
2240:.
2206:^
2181:.
2173:.
2163:52
2161:.
2128:.
2072:^
2044:,
2036:,
2022:,
2018:,
1904:,
1720:GB
1665:.
1644:.
1628:,
1624:,
1620:,
1616:,
1581:A
1573:.
1488:.
1420:.
1334:.
1326:,
1322:,
1318:,
1272:,
1268:,
1264:,
1260:,
1256:,
1252:,
1245:.
1156:;
1065:;
996:,
992:;
938:.
890:.
514:,
210:,
199:,
195:,
191:,
3299:e
3292:t
3285:v
2299:.
2279:e
2272:t
2265:v
2248:.
2189:.
2169::
2139:.
2113:.
2091:.
2040::
2024:6
1836:.
1658:.
1534:.
1522:(
1406:n
1125:1
1119:c
1115:,
1112:)
1107:n
1103:c
1099:(
1096:O
1059:n
1035:)
1030:2
1026:n
1022:(
1019:O
1000:(
968:)
965:n
956:n
953:(
950:O
932:n
911:)
908:n
905:(
902:O
859:)
856:n
847:(
844:O
805:)
802:1
799:(
796:O
749:n
729:n
706:n
686:)
683:n
680:(
677:g
653:)
650:n
647:(
644:g
622:)
617:)
614:n
611:(
608:g
603:(
598:O
595:=
592:)
589:n
586:(
583:f
559:n
388:)
385:n
382:(
379:O
355:)
352:n
343:n
340:(
337:O
313:)
310:1
307:(
304:O
276:)
271:2
267:n
263:(
260:O
175:)
169:(
164:)
160:(
150:.
120:)
114:(
109:)
105:(
95:·
88:·
81:·
74:·
47:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.