初学者指南:什么是算法?11行伪代码给你讲明白

导读:本文带你熟悉一个重要的术语——算法。作者:帕诺斯·卢里达斯(Panos Louridas)来源:大数据DT(ID:hzdashuju)算法(algorithm)就是一个过程,是一种...
摘要由CSDN通过智能技术生成


导读:本文带你熟悉一个重要的术语——算法。

作者:帕诺斯·卢里达斯(Panos Louridas)

来源:大数据DT(ID:hzdashuju)

算法(algorithm)就是一个过程,是一种特殊的过程。它必须描述为一个有限步骤序列,且必须在有限时间内结束。每个步骤必须是良好定义的,达到人类可用一支笔和一张纸执行它的程度。

算法基于我们提供给它的输入做一些事情,并生成反映其所做工作的一些输出。算法1-1实现了我们前面描述的过程。

  • 算法1-1 一个简单的股票跨度算法

SimpleStockSpan(quotes)→spans

  • 输入: quotes,保存n个股票报价的数组

  • 输出: spans,保存n个股票跨度的数组

 1spans←CreateArray(n)
 2for i←0 to n do
 3    k←1
 4    span_end ← FALSE
 5    while i-k ≥ 0 and not span_end do
 6       if quotes[i-k] ≤ quotes[i] then
 7           k←k+1
 8       else
 9           span_end ← TRUE
10    spans[i] ← k
11return spans

算法1-1展示了如何描述算法。我们并不使用某种计算机语言,因为那样会迫使我们处理与算法逻辑无关的实现细节,我们使用的是某种伪代码(pseudocode)形式。

伪代码是一种介于真正的程序代码和非形式化描述之间的形式。它使用一种结构化格式,并采用一组具有特定含义的词汇。但是,伪代码不是真正的计算机代码。它并不是为了被计算机执行,而是易于被人类理解。

顺便提一下,程序也应能被人类理解,但并非所有程序都是如此——有很多正在运行的计算机程序写得很糟糕,难以理解。

每个算法都有一个名字,接受一些输入,并生成一些输出。在本书中,算法的名字将采用骆驼拼写法(CamelCase),输入会写在括号中,输出用一个→指示。接下来的几行将会对算法的输入和输出进行描述。可以用算法的名字紧接放在括号中的输入来调用(call)算法。

一旦算法编写好,就可以将其作为一个黑盒来处理,可以给它一些输入,黑盒则会返回算法的输出。当用一种程序设计语言实现一个算法时,它就是一个具名的计算机代码片段——函数(function)。在一个计算机程序中,我们调用实现算法的函数。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值