博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

第一章 算法在计算中的作用

Posted on 2011-11-06 17:25  shanymen  阅读(1810)  评论(1编辑  收藏  举报

        算法就是一系列的计算步骤,用来将输入数据转换成输出结果,一个输入序列称为该排序问题的一个实例(instance)。对于一项特定的应用来说,如何选择最佳的排序算法主要考虑如下问题:

  • 考虑待排序的数据项数;
  • 这些数据项已经排好序的程度;
  • 对数据项取值的可能限制;
  • 打算采用的存储设备的类型。

        算法可以解决哪些类型的问题:

  • 生物问题,DNA排序及分析;
  • 搜索引擎,海量数据管理和操纵;
  • 电子商务,加密和数字签名技术;
  • 商业应用,稀有资源分配和调度;
  • 实际问题,两地路径最短,路由最短。
        效率是不同算法问题产生的根本,随着问题规模的增长,差距会变的不可跨越。算法就像计算机硬件一样,是一种技术,总体的系统性能不仅依赖于选择快速的硬件,还依赖于选择有效的算法。
        对于下表中的每一个函数f(n)和时间t,求出可以在时间t内被求解出来的问题的最大规模n。假设解决该问题的算法解决该问题需要f(n)毫秒。
  1秒 1分钟 1小时 1天 1个月 1年 1个世纪
lgn 2^1000 正无穷大 正无穷大 正无穷大 正无穷大 正无穷大 正无穷大
Sqrt(n) 10^6 4.29E+9 1.76E+13 9.01E+15      
n 10^3 6E+4 3.6E+6 8.64E+8      
nlgn 141 4896 204095 3.94E+6      
n^2 32 245 1898 9296      
n^3 11 40 154 443      
2^n 10 16 22 27      
n! 7 9 10 12