waiting for it to completeunless your computer runs out of memory trying to build list with tens of millions of elements don' even think about trying to run genpowerset on list containing all uppercase and lowercase letters step of the algorithm generates ( len( )binary numbersso the algorithm is exponential in len(ldoes this mean that we cannot use computation to tackle exponentially hard problemsabsolutely not it means that we have to find algorithms that provide approximate solutions to these problems or that find perfect solutions on some instances of the problem but that is subject for later comparisons of complexity classes the following plots are intended to convey an impression of the implications of an algorithm being in one or another of these complexity classes the plot on the right compares the growth of constant-time algorithm to that of logarithmic algorithm note that the size of the input has to reach about million for the two of them to crosseven for the very small constant of twenty when the size of the input is five millionthe time required by logarithmic algorithm is still quite small the moral is that logarithmic algorithms are almost as good as constant-time ones the plot on the left illustrates the dramatic difference between logarithmic algorithms and linear algorithms notice that the -axis only goes as high as while we needed to look at large inputs to appreciate the difference between constant-time and logarithmic-time algorithmsthe difference between logarithmic-time and linear-time algorithms is apparent even on small inputs the dramatic difference in the relative performance of logarithmic and linear algorithms does not mean that linear algorithms are bad in factmost of the time linear algorithm is acceptably efficient the plot below and on the left shows that there is significant difference between (nand ( log( )given how slowly log(ngrowsthis may seem bit surprisingbut keep in mind that it is multiplicative factor also keep in mind that in most practical situationso( log( )is fast enough to be useful