the importance of good algorithm design goes beyond just what can be solved effectively on given computerhowever as shown in table even if we achieve dramatic speedup in hardwarewe still cannot overcome the handicap of an asymptotically slow algorithm this table shows the new maximum problem size achievable for any fixed amount of timeassuming algorithms with the given running times are now run on computer times faster than the previous one running time new maximum problem size + table increase in the maximum size of problem that can be solved in fixed amount of timeby using computer that is times faster than the previous one each entry is function of mthe previous maximum problem size some words of caution few words of caution about asymptotic notation are in order at this point firstnote that the use of the big-oh and related notations can be somewhat misleading should the constant factors they "hidebe very large for examplewhile it is true that the function is ( )if this is the running time of an algorithm being compared to one whose running time is log nwe should prefer the ( log )time algorithmeven though the linear-time algorithm is asymptotically faster this preference is because the constant factor which is called "one googol,is believed by many astronomers to be an upper bound on the number of atoms in the observable universe so we are unlikely to ever have real-world problem that has this number as its input size thuseven when using the big-oh notationwe should at least be somewhat mindful of the constant factors and lower-order terms we are "hiding the observation above raises the issue of what constitutes "fastalgorithm generally speakingany algorithm running in ( log ntime (with reasonable constant factorshould be considered efficient even an ( )-time function may be fast enough in some contextsthat iswhen is small but an algorithm running in ( time should almost never be considered efficient exponential running times there is famous story about the inventor of the game of chess he asked only that his king pay him grain of rice for the first square on the board grains for the second grains for the third for the fourthand so on it is an interesting test of programming skills to write program to compute exactly the number of grains of rice the king would have to pay