重温数据结构二(算法)

算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作

 算法的特性 :输入,输出,有穷性,确定性,可行性

    算法具有零个或多个输入

    算法至少有一个或多个输出

    算法在执行有限步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成

   算法的每一步骤都具有确定的含义,无二义性

    算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成


 算法设计要求

   正确性,可读性,健壮性,时间效率低和存储量低

算法效率度量方法

  事后统计方法:通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法的效率高低

  缺陷:必须实现编好程序

             时间比较依赖计算机硬件和软件

            算法测试数据设计困难

事前分析估算方法:计算机程序编制前,依据统计方法对算法进行估算

         消耗时间依赖:1 算法采用的策略,方法 2 编译产生的代码质量 3 问题输入的规模 4 机器执行指令的速度


函数的渐近增长:给定两个函数f(n) 和g(n),如果存在一个整数N,使得对于所有的n>N ,f(n)总是比g(n)大,那么我们说f(n)

   的增长渐近快于g(n)

  与最高次项相乘的常数并不重要

 判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,更应该关注主项的阶数


 算法的时间复杂度 :T(n) = O(f(n))  它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同。称作算法的渐近时间复杂度。

推导大O阶方法:

   1 用常数1 取代运行时间中的所有加法常数

   2 在修改后的运行次数函数中,只保留最高阶项

   3 如果最高阶项存在且不是1,则去除与这个项相乘的常数

     得到的结果就是大O阶

             最坏情况运行时间:就是运行时间不会再坏了

            平均时间 期望运行的时间

            一般都是指最坏时间复杂度


       算法空间复杂度

     通过计算算法所需的存储空间实现,算法空间复杂度计算公式:s(n) = O(f(n))  n为问题的规模,f(n) 为语句关于n所占的存储空间函数




你可能感兴趣的:(重温数据结构二(算法))