最新文章

进程与线程

进程 由于对操作系统多任务处理的需求,出现了进程的抽象概念 进程是对运行中的程序的抽象 线程 由于进程的粒度太大,为了进行更细粒度的控制,出现了线程的概念 线程指程序中的一个指令执行序列,此时进程退化为线程和硬件资源的容器 线程的出现实际上是代码执行(线程)与资源分配(进程)相分离的体现

算法分析预备知识

为什么需要算法分析? 在求解问题时,我们既需要得到正确的答案(正确性),也需要尽可能快地完成求解(性能)。一个正确的但运行时间极长的程序是不切实际的,我们真正需要的是正确且高效的程序。通过算法分析,我们可以找到程序的性能瓶颈并对程序进行性能优化。

算法分析基础

算法(algorithm)是由定义清晰的计算步骤所组成的操作序列。一旦我们确认了某个算法的正确性,接下来极其重要的一步就是分析它的运行时间和需要使用的空间资源。

算法分析例子:MaxSubSum问题

问题 给定整数\(A_1, A_2, ..., A_N,\)求\(\sum_{k=i}^{j}A_k\)的最大值,其中\(A_i\)有可能是负数。这里把使得\(\sum_{k=i}^{j}A_k\)最大的序列称为最大连续子序列。