算法 (一) : 算法简介

算法简介

  • 什么是算法

    ➢一系列的计算步骤,用来将输入数据转化成输出结果

    ●算法的意义

    ➢用于解决特定的问题

    ➢解决同一个问题的不同算法的效率常常相差非常大,这种差距的影响往往比硬件和软件方面的差距还要大

    ●比较常听到的较为简单的算法

    ➢排序算法

    ➢加密算法

    ➢......

 

 

算法的特征

 

  • 有穷性(Finiteness)

    ➢执行有限个步骤之后终止

    ●确切性(Definiteness)

    ➢每一步有确切的定义

    ●输入(Input)

    ➢有0个或N个输入(N >= 1)

    ●输出(Output)

    ➢至少1个输出

可行性(Effectiveness)

➢任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成

如何评判一个算法的优劣?

  • 如果单从效率上进行评估,可能会想到这么一种方案:

    ➢比较不同算法对同一组输入的执行处理时间

    ●上述方案有比较明显的缺点

    ➢执行时间严重依赖硬件以及运行时各种不确定的环境因素

    ➢必须编写相应的测算代码

    ➢测试数据的选择比较难保证公正性

    ●一般从以下维度来评估算法的优劣

    ➢正确性

    ➢可读性

    ➢健壮性(对不合理输入的反应能力和处理能力)

    ➢时间复杂度:估算程序指令的执行次数

    ➢空间复杂度:估算所需占用的存储空间

 

 

大O表示法

 

常见复杂度

 

 

常见排序算法的复杂度

 

 

 

算法的优化方向

  • 用尽量少的内存空间

    ●用尽量少的执行步骤

    ●根据情况,可以

    ➢空间换时间

    ➢时间换空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值