第01章:概述

算法分析与设计

文章目录

  • 引⾔
      • 五个重要的特征:
      • 时间复杂度
      • 时间复杂度推导原则
  • 问题


引⾔

算法是指解题⽅案的准确⽽完整的描述,是⼀系列解决问题的清晰指令,算法代表着⽤系统的⽅法描述解决问题的策略机制。

⼀个算法的评价主要从 时间复杂度 和 空间复杂度 来考虑。

五个重要的特征:

  1. 有穷性:执⾏有限条指令后⼀定要终⽌。
  2. 确定性(⽆⼆义):算法的每⼀步操作都必须有确切定义,不得有任何歧义性。
  3. 可(能)⾏性:算法的每⼀步操作都必须是可⾏的,即每步操作均能在有限时间内完成。
  4. 输⼊:⼀个算法有个初始数据的输⼊。
  5. 输出:⼀个算法有⼀个或多个与输⼊有某种关系的有效信息的输出。

时间复杂度

⼀个算法花费的时间与算法中语句的执⾏次数成正⽐例,哪个算法中语句执⾏次数多,它花费时间就多。
在这里插入图片描述

第01章:概述_第1张图片

同样问题,算法可以大幅度减少运算,好的算法很重要。

时间复杂度推导原则

  1. 如果运⾏时间是常数量级,⽤常数1表示。
  2. 只保留时间函数中的最⾼阶项。
  3. 如果最⾼阶项存在,则省去最⾼阶项前⾯的系数

问题

⼀个有序数组A,另⼀个⽆序数组B,请打印数组B中的所有不在数组A中的数,数组A⻓度为,数组B⻓度为。

第01章:概述_第2张图片

第01章:概述_第3张图片

 for(i=0,j=0; i<A.length && j<B.length; ) {
     
 if (B[j] < A[i])
 打印B[j], j++
 else if (B[j] == A[i])
 i++, j++
 else
 i++
 }
if(i>=A.length)
打印B[j]后⾯所有元素;

你可能感兴趣的:(算法分析与设计)