从您的角度来看,我一直认为标准Word RAM模型是“最好的”。学会使用C语言(或Java等类似宽松形式的语言)进行编程的每个人,在想到计算机时都牢记这种模型。
当然,有时您需要根据工作方式进行概括。外部存储器模型是要记住的重要模型。它不仅适用于使用磁盘,而且适用于理解(迫使您注意)缓存。当然,过分对待它也可能导致无意义的结果,因为纯外部存储器模型不计入计算量。Word RAM的另一种概括是并行性,但是目前我们有点困惑:)
运行时间为的算法肯定比运行时间为的算法要快。这是一个数学事实,对于大而言,前者会更快:)您的问题大小可能根本不够大,以至于无济于事。既然您提出了排序,让我向您保证,对于合理的基于比较的算法来击败基数排序将非常困难。O(n)O(nlgn)nn
关于算法和“现实性”的最后一句话:始终牢记您要实现的目标。当我们从事算法工作时,我们正在尝试解决最困难的问题(例如,对50个变量进行SAT运算,或对十亿个数字进行排序)。如果您尝试对200个数字进行排序或对20个变量求解SAT,则不需要任何奇特的算法。这就是为什么现实中大多数算法都是微不足道的。这并不表示算法研究有什么不好,我们只是对那不寻常的实际问题中的1/1000感兴趣而感到兴趣……