算法的入门基础了解

news2024/11/25 18:25:26

目录

算法的特征

如何设计算法?

伪代码


 

“算法”一词最早出现在《周髀算经》这本书中,对应的英文单词是“algorism”(由 9 世纪的波斯数学家阿尔·霍瓦里兹米提出),代指阿拉伯数字的运算规则。随着计算机的快速发展,“算法”被赋予了新的含义,代指解决问题的方法,对应的英文单词演变为“algorithm”。
算法规定了解决某一问题的具体步骤,先做什么,再做什么,最后做什么,计算机只需要依照步骤运行,就可以解决问题。通常情况下,一个问题的解决方案可能有很多种,也就是说,一个问题可能对应有多种算法,每种算法都可以使用多种编程语言实现,例如 C、C++、Python、Java 等。

算法只是解决问题的思路,并非具体的程序代码。算法和程序之间的关系可以这样理解:程序员需根据算法(思路)编写出计算机能识别的程序代码,然后交由计算机执行,从而解决问题。

算法的特征

我们知道,算法包含了解决问题的一系列步骤,但并非任何步骤的集合都可以称为算法。
一个算法,应具有如下几个特征:

某些场景中,算法能够接收用户输入的数据;

算法中所有的步骤执行完毕后,至少生成1个执行结果;

算法所有步骤的执行次数必须是有限的,换句话说,算法必须能够在有限时间内执行完毕。

如何设计算法?

事实上,算法的设计从来都没有明确的标准,也不受任何编程语言的影响。
通常情况下,设计算法的过程需要考虑以下 2 个方面:

算法是为解决特定问题而设计的,因此针对不同的问题,设计的算法也不一样;

设计算法时,需要考虑实际场景中的一些限制因素,例如该算法编写的程序要求能在内存容量小的机器上运行,因此设计的算法就不能使用太多的内存空间。
这里,我们将给您列举一个实例,切实感受一下设计算法的过程。设计一种算法,计算两个数相加的和并显示执行结果,如下给您演示了一种算法:

第 1 步:接收 2 个数的值(分别赋值给 a 和 b);

第 2 步:将 a+b 的值赋值给 c;

第 3 步:输出 c 的值。
计算机只需要依次执行这 3 个步骤,就可以解决“计算两个数相加的和”的问题。

伪代码

伪代码是一种介于自然语言和编程语言之间,能更准确、高效地描述算法执行流程的语言。
用伪代码描述算法的执行流程,具有以下几个优点:

和自然语言、程序流程图相比,伪代码更接近于真实的编程语言,程序员可以很容易地将伪代码转换为程序;

使用自然语言描述算法的执行流程,很可能出现用词不当、语言表述不清等问题。伪代码可以避免出现此类问题,它的可读性、准确性都很高;

和自然语言、程序流程图相比,伪代码很容易修改;

和编程语言相比,伪代码没有严格的语法规定,所以在使用伪代码描述算法时,不需要考虑语法细节,大大降低了使用门槛。
举个例子,如下给您演示了上面实例算法对应的伪代码:

输入 a,b//接收用户输入的数据
c <- a+b//计算 a+b 的值并赋值给 c
Print c//输出 c 的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1206520.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计大咖亲授:Figma中文环境设置全攻略!

作为UI设计师&#xff0c;你一定很熟悉Figma&#xff0c;Figma是一款专注于UI/UX设计的在线协作工具&#xff0c;使用非常高效方便&#xff0c;不需要下载和安装。它只需要通过浏览器编辑&#xff0c;在国外很受欢迎。但是Figma对于国内的小伙伴来说&#xff0c;使用Figma有一定…

Java面试题(每天10题)-------连载(30)

目录 多线程篇 1、可以运行时kill掉一个线程吗&#xff1f; 2、关于synchronized 3、分布式锁&#xff0c;程序数据库中死锁机制及解决方案 4、spring单例为什么没有安全问题&#xff08;ThreadLocal&#xff09; 5、线程池原理 6、Java锁多个对象 7、Java线程如何启动 …

基于opencv+tensorflow+神经网络的智能银行卡卡号识别系统——深度学习算法应用(含python、模型源码)+数据集(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境OpenCV环境 相关其它博客工程源代码下载其它资料下载 前言 本项目基于从网络获取的多种银行卡数据集&#xff0c;采用OpenCV库的函数进行图像处理&#xff0c;并通过神经网络进行模型训练。最终实…

雅虎、美客多、Temu、Allegro、亚马逊跨境平台选品技巧方法,测评养号攻略。

&#xff08;1) Best Sellers选品法 这个方法顾名思义&#xff0c;就是大家熟悉的热销榜单选品法。 不做过多解释&#xff0c;在自己熟悉的品类&#xff0c;隔几天就会观察一下前100名里有没有冒出什么新品。 它和现有的产品相同还是不同&#xff0c;自己做哪些搭配或者迭代…

数字农业农村解决方案:PPT全文69页,附下载

关键词&#xff1a;智慧农业解决方案&#xff0c;数字农村&#xff0c;数字农业&#xff0c;智慧农业大数据平台 一、数字农业建设背景 数字农业建设是在国家大数据战略和“互联网”行动计划的指引下&#xff0c;充分利用现代信息技术和人工智能手段&#xff0c;对农业农村领…

ioc是什么

IOC是什么&#xff1f; 在面向对象的软件设计中&#xff0c;底层都是由多个对象耦合组成共同实现逻辑业务的&#xff0c;如下图&#xff1a; 耦合关系不仅会出现在对象与对象之间&#xff0c;也会出现在软件系统的各模块之间&#xff0c;以及软件系统和硬件系统之间。如何降低…

电脑监控软件丨功能详情丨特点分析

电脑监控软件的出现&#xff0c;是在信息技术的飞速发展以及计算机使用的普及的背景下产生的。随着计算机在企业、学校以及家庭等各个场所的广泛使用&#xff0c;管理和保护计算机数据安全的问题变得越来越重要。因此&#xff0c;电脑监控软件应运而生&#xff0c;旨在帮助用户…

企业大楼门禁,千万不要这么管理!太慢了!

随着社会科技的飞速发展&#xff0c;安全管理已经成为各行业关注的焦点之一。在这个信息化时代&#xff0c;门禁监控系统作为一种全面提升安全性、管理效率的关键工具&#xff0c;逐渐成为企事业单位、学校、医疗机构等场所的不可或缺的一部分。 传统的门禁系统已经无法满足现代…

threejs太阳系(源码加相关素材)

目录 前言 效果预览图 完整代码 html部分 js部分 模块aa 前言 Three.js 是一款基于原生 WebGL 封装通用 Web 3D 引擎&#xff0c;在小游戏、产品展示、物联网、数字孪生、智慧城市园区、机械、建筑、全景看房、GIS 等各个领域基本上都有 three.js 的身影。本篇文章简单的使…

开源维修上门服务小程序SAAS系统源码 带完整搭建教程

在现代生活中&#xff0c;家电设备维修往往是一个耗时且繁琐的过程。消费者需要花费大量时间寻找合适的维修人员&#xff0c;并面临服务质量不稳定的风险。同时&#xff0c;对于维修人员来说&#xff0c;寻找客户和接收订单的过程也十分繁琐。因此&#xff0c;开发一款基于小程…

cryptopp Base64Encoder \n问题

1、问题&#xff1a; new Base64Encoder(new StringSink(out_base)) 调用库函数Base64Encoder进行base64加密后确认多出来了\n 2、原因 base64加密的问题, 由于base64一行不能超过76字符, 超过就会添加回车换行符(在Windows中是 \r\n , 在Linux中是 \n ) 3、解决 方法一、给定参…

Python中的filter函数用法详解

目录 引言 一、filter函数基本用法 二、filter函数应用场景 1、筛选符合条件的元素 2、数据清洗和预处理 3、复杂条件筛选 4、与其他函数结合使用 三、filter函数与lambda表达式 四、filter函数与列表推导式 五、总结 引言 Python中的filter函数是一种内置的高效过滤…

电脑桌面图标打不开?三种方法让你轻松应对

电脑桌面上的图标是我们日常使用电脑的入口&#xff0c;但有时候您可能会遇到一个常见问题&#xff0c;电脑桌面图标打不开。这个问题可能会让您感到困惑&#xff0c;但幸运的是&#xff0c;通常有多种方法可以解决。本文将详细介绍三种常见的解决方法&#xff0c;帮助您恢复桌…

测试:面试问题(多精全)

目录 面试问题 1&#xff0c;你们原来项目的测试流程是怎么样的&#xff1f; 2&#xff0c;你介绍下&#xff0c;你最熟悉的项目&#xff1f; 3&#xff0c;你们原来项目的主要的功能模块有哪些&#xff0c;你主要负责哪些模块&#xff1f; 4&#xff0c;你说原来充值…

Axure9学习

产品经理零基础入门&#xff08;四&#xff09;Axure 原型图教程&#xff0c;2小时学会_哔哩哔哩_bilibili 1. ① 页面对应页面个数&#xff0c;概要对应每个页面的具体内容 ② 文件类型 ③ 备用间隔改为5分钟 ④ 当多个元件重叠&#xff0c;想把在下面的元件b直接拖出来&…

一款IT团队都在用的私有化知识库,技术开放,还开源了!

IT和软件开发团队需要处理大量的技术文档和知识&#xff0c;通过建立内部知识库&#xff0c;可以将技术文档、代码示例、最佳实践等知识整理和归档起来&#xff0c;方便团队成员查找和参考。 IT和软件开发团队为什么要建立内部知识库&#xff1f; 提高知识管理效率&#xff1a…

汇川(Inovance) PLC——H2u 和H3u:编程口通讯协议

文章目录 说明通讯帧通讯命令字通讯数据地址汇川 H2u H3u通讯协议举例 说明 该协议适用于汇川H2u系列和H3u系列PLC。 通讯帧 通讯采用ASCII码&#xff0c;校验方式采用和校验。 请求帧格式:报文开始命令字地址&#xff08;有些无&#xff09;长度&#xff08;有些无&#xf…

怎样用 vs2017编写一个cpp并运行

02 第一个C程序-C书写HelloWorld_哔哩哔哩_bilibili 1 第一个C程序 编写一个C程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1 创建项目 Visual Studio是我们用来编写C程序的主要工具&#xff0c;我们先将它打开 1.2 创建文件 右键源文件&#xff0c;选…

解决企业项目管理难题:痛点分析与实用解决方案探索

在当前竞争激烈的商业环境中&#xff0c;产品力已然成为市场竞争的核心&#xff0c;这背后的驱动力是技术、人才和管理能力的综合体现——研发创新能力。其中&#xff0c;项目管理能力扮演着至关重要的角色&#xff0c;它能最大化地发挥和释放以上三者的优势。因此&#xff0c;…

教资笔记(目录)

2023.9.16教资考试 笔试成绩是150分&#xff0c;但是考试折合成120分满分&#xff0c;70分及格。 计划&#xff1a;2024上半年再战科一 名称类型中学科二急救班中学中小学科一模板通用科目二简答题汇总中学教资学习笔记总结中学《综合素质》通用 小学中学科一&#xff08;通…