并行计算机体系结构硬件软件结合的设计与分析_计算机组成与设计—硬件/软件接口_计算机硬件基础

计算机基础知识(十九)

-tip:算法小知识-

计算机硬件基础_计算机组成与设计—硬件/软件接口_并行计算机体系结构硬件软件结合的设计与分析

Vol.01

计算机硬件基础_并行计算机体系结构硬件软件结合的设计与分析_计算机组成与设计—硬件/软件接口

算法的基本知识:

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间,空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。(计算方法)

算法的意义:假设计算机无限快计算机硬件基础,并且计算机存储容器是免费的,我们还需要各种乱七八糟的算法吗?如果计算机无限快,那么对于某一个问题来说,任何一个都可以解决他的正确方法都可以的!当然,计算机可以做到很快,但是不能做到无限快,存储也可以很便宜但是不能做到免费。那么问题就来了效率:解决同一个问题的各种不同算法的效率常常相差非常大,这种效率上的差距的影响往往比硬件和软件方面的差距还要大。

计算机硬件基础_计算机组成与设计—硬件/软件接口_并行计算机体系结构硬件软件结合的设计与分析

Vol.02

算法的五个重要的特征:

有穷性(Finiteness)

算法的有穷性是指算法必须能在执行有限个步骤之后终止;

确切性(Definiteness)

算法的每一步骤必须有确切的定义;

输入项(Input)

一个算法有0个或多个输入计算机硬件基础,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;

输出项(Output)

一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;

可行性(Effectiveness)

算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成(也称之为有效性)。

计算机硬件基础_计算机组成与设计—硬件/软件接口_并行计算机体系结构硬件软件结合的设计与分析

计算机硬件基础_计算机组成与设计—硬件/软件接口_并行计算机体系结构硬件软件结合的设计与分析

Vol.03

算法的常见思想:

递推法

递推是序列计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定项的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。

递归法

程序调用自身的编程技巧称为递归(recursion)。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

并行计算机体系结构硬件软件结合的设计与分析_计算机硬件基础_计算机组成与设计—硬件/软件接口