算法的入门基础了解

目录

算法的特征

如何设计算法?

伪代码


 

“算法”一词最早出现在《周髀算经》这本书中,对应的英文单词是“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 的值

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小白看CLIP代码解析

CLIP代码解析 CLIP演示代码&#xff08;以cifar100举例&#xff09;补充11. 为什么选用100*image_feature&#xff1f;2. 为什么使用L2规范点积&#xff0c;而不直接使用点积&#xff1f; cifar100的所有类别model.encode_image >> VisionTransformer补充21. 为什么加入c…

GoldWave v6.78 绿色免费便携版功能介绍及使用说明

GoldWave v6.78 绿色免费便携版是一款集声音编辑、播放、录制与转换为一体的音频编辑工具&#xff0c;还可以对音频内容进行转换格式等处理。该软件支持许多格式的音频文件&#xff0c;包括WAV, OGG, VOC, IFF, AIF, AFC, AU, SND, MP3,MAT, DWD, SMP, VOX, SDS, AVI, MOV等音频…

程序运行前后内存分区存储

程序运行前是源码 在程序运行后&#xff0c;生成了exe可执行程序 分为代码区和全局区 代码区&#xff1a; 存放CPU执行的机器指令代码区是共享的&#xff0c;共享的目的是对于频繁被执行的程序&#xff0c;只需要在内存中有一份代码就可以了代码区是只读的&#xff0c;其只读…

淘宝京东优惠券信息API接口系列

获取淘宝优惠券信息接口需要使用淘宝开放平台提供的API接口。以下是获取优惠券信息的步骤&#xff1a; 进入淘宝开放平台&#xff0c;注册并登录账号。在开放平台页面中&#xff0c;找到“优惠券”或“营销工具”等相关的API接口&#xff0c;根据需要进行选择。根据接口文档&a…

C语言——函数

导读 &#xff1a; 这篇文章主要讲解一下C语言函数的一些基本知识。 前言&#xff1a;函数的概念 C语言中的函数又常常被称为子程序&#xff0c;是用来完成某项特定的工作的一段代码。就像我们生活中的模块化建造技术&#xff0c;类比模块化建房子的过程&#xff1a;整个程序…

快速掌握队列的基础知识

目录 队列的特点基于链表实现队列用栈实现队列用队列实现栈 队列是一种线性数据结构&#xff0c;它只允许在一边进行插入操作&#xff08;队尾&#xff09;&#xff0c;另一边进行删除操作&#xff08;队头&#xff09;。插入操作称为入队&#xff0c;删除操作称为出队。队列遵…

数据分类分级方法及典型应用场景

1 2021-09-29 来源&#xff1a;数据学堂 [打印本稿][字号 大 中小] 《数据安全法》的第二十一条明确规定了由国家建立数据分类分级保护制度&#xff0c;根据数据在经济社会发展中的重要程度&#xff0c;以及一旦遭到篡改、破坏、泄露或者非法获取、非法利用&#xff0c;对国…

ISP 处理流程

#灵感# 摆烂时间太长了&#xff0c;感觉知识忘光光了。重新学习&#xff0c;常学常新。 因为公司文档都不让摘抄、截取&#xff0c;所以内容是工作的一些自己记录和网络内容&#xff0c;不对的欢迎批评指正。 1、ISP概述 ISP是Image Signal Processor 的简称&#xff0c;也就…

Python---综合案例:通讯录管理系统---涉及点:列表、字典、死循环

需求&#xff1a; 开个一个通讯录的管理系统&#xff0c;主要用于实现存储班级中同学的信息&#xff08;姓名、年龄、电话&#xff09; 涉及点&#xff1a;列表、字典、死循环 相关链接&#xff1a;Python--列表及其应用场景---增、删、改、查。-CSDN博客 Python---字典---…

回顾 — SFA:简化快速 AlexNet(模糊分类)

模糊图像的样本 一、说明 在本文回顾了基于深度学习的模糊图像分类&#xff08;SFA&#xff09;。在本文中&#xff1a;Simplified-Fast-AlexNet (SFA)旨在对图像是否因散焦模糊、高斯模糊、雾霾模糊或运动模糊而模糊进行分类。 二、大纲 图像模糊建模简要概述简化快速 AlexNet…

Model Inspector—软件模型静态规范检查工具

产品概述 Model Inspector&#xff08;MI&#xff09;原厂商是韩国Suresoft&#xff0c;是KOLAS国际公认测评机构&#xff0c;旨在提升安全关键领域软件可信度。MI用于开发过程中模型的静态检查&#xff0c;包括规范检查、复杂度度量&#xff0c;提供MAAB、HIS、CG、MISRA_AC_…

MCU通过KT6368A用SPP透传发送1K左右的数据,手机APP显示是3个包或者4个包,但是我看手册说最大一个包是512,理论应该是两个包吧,请问这正常吗?

一、问题简介 MCU通过KT6368A用SPP透传发送1K左右的数据&#xff0c;手机APP显示是3个包或者4个包&#xff0c;但是我看手册说最大一个包是512&#xff0c;理论应该是两个包吧&#xff0c;请问这正常吗&#xff1f; 详细说明 实际测试的截图如下&#xff1a;使用的是安卓app…

【MySQL】库的相关操作 + 库的备份和还原

库的操作 前言正式开始创建数据库删除数据库编码集查看系统默认字符集以及校验规则字符集校验规则 所有支持的字符集和校验规则所有字符集所有校验规则 指明字符集和校验规则创建数据库相同的字符集用不同的校验规则读取会出现什么情况 alter修改数据库show create databasealt…

深入理解Kafka3.6.0的核心概念,搭建与使用

Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区的&#xff08;partition&#xff09;、多副本的&#xff08;replica&#xff09;&#xff0c;基于zookeeper协调的分布式消息系统&#xff0c;它的最大的特性就是可以实时的处理大量数据以满足各种需求场景&a…

OpenMMlab导出yolov3模型并用onnxruntime和tensorrt推理

导出onnx文件 直接使用脚本 import torch from mmdet.apis import init_detector, inference_detectorconfig_file ./configs/yolo/yolov3_mobilenetv2_8xb24-ms-416-300e_coco.py checkpoint_file yolov3_mobilenetv2_mstrain-416_300e_coco_20210718_010823-f68a07b3.pth…

跨境电商源码:多语言支持与扩展的终极解决方案

随着全球电商市场的不断扩大&#xff0c;跨境电商源码的需求日益增长。对于想要拓展国际业务的电商企业来说&#xff0c;多语言支持显得尤为重要。在这方面&#xff0c;我们的跨境电商源码产品具备显著优势&#xff0c;不仅全面支持多语言&#xff0c;还方便扩展多个语言的CSDN…

PP-ChatOCRv2、PP-TSv2、大模型半监督学习工具...PaddleX新特性等你来pick!

小A是一名刚刚毕业的算法工程师&#xff0c;有一天&#xff0c;他被老板安排了一个活&#xff0c;要对一批合同扫描件进行自动化信息抽取&#xff0c;输出结构化的分析报表。OCR问题不大&#xff0c;但是怎么进行批量的结构化信息抽取呢&#xff1f;小A陷入了苦苦思索... 小B是…

【06】VirtualService高级流量功能

5.3 weight 部署demoapp v10和v11版本 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: demoappv10version: v1.0name: demoappv10 spec:progressDeadlineSeconds: 600replicas: 3selector:matchLabels:app: demoappversion: v1.0template:metadata:labels:app…

数据结构:红黑树的原理和实现

文章目录 红黑树的概念红黑树的性质红黑树的模拟实现红黑树的平衡问题 整体实现和测试 本篇用于进行红黑树的拆解和模拟实现&#xff0c;为之后的map和set的封装奠定基础 红黑树的概念 红黑树也是一种二叉搜索树&#xff0c;但是在每一个节点的内部新增了一个用以表示该节点颜…

【python自动化】Playwright基础教程(八)鼠标操作

【python自动化】Playwright基础教程(八)鼠标操作 本文目录 文章目录 【python自动化】Playwright基础教程(八)鼠标操作playwright系列回顾前文代码click模拟鼠标点击dblclick模拟鼠标双击down模拟鼠标按下move模拟鼠标移动up模拟鼠标释放wheel模拟鼠标滚动鼠标长按常用实战引…