如何写好一个算法

2023-05-16

写出算法有一个比较通用的方法论,步骤如下:

1、理解问题

  先弄清楚具体要解决什么问题

  做成怎样的程度就可以满足问题需要?是需要精确值还是近似值?

2、分析问题

  用数学思路去描述问题的求解过程

3、确定适当数据结构和流程控制结构

  画出流程图 

4、用伪代码表述算法

  这是很关键的一步,基本是决定成败的一步。

  伪代码的目的是为了指导实现最终代码,所以要求它结构清晰、可读性好。

  伪代码的重点在于描述算法执行过程,而要忽略细节、如变量类型、部分子函数(比如取出数组中最小元素等)实现。

5、思考算法正确性与效率

初始条件:迭代开始之前,是否正确

保持:假设第n次迭代开始之前是正确,那么第n+1次开始之前是否正确

终止:循环结束时,是否正确

6、编码最终代码

文章链接:

怎么思路写算法? - 竹千代 - 博客园

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何写好一个算法 的相关文章

  • 永久保存屏幕显示方向

    修改屏幕的显示方向 xff1a 在终端输入 xrandr o left 向左旋转90度 xrandr o right 向右旋转90度 xrandr o inverted 上下翻转 code code code xrandr o normal
  • RabbitMQ 与 Kafka深度解析(二)

    介绍 作为一名处理大量基于微服务的系统的软件架构师 xff0c 我经常会遇到一个反复出现的问题 xff1a 我应该使用RabbitMQ还是Kafka xff1f 出于某种原因 xff0c 许多开发人员认为这些技术是可以互换的 虽然在某些情况
  • 物联网时代25大开源IoT框架

    相当长一段时间以来 xff0c 互联网一直被用来连接人类并简化生活 xff0c 这是21世纪初的启示 今天 xff0c 我们将讨论各种物联网框架 现在 xff0c 我们正在进入一个基于互联网技术的新世界 xff0c 该世界不仅连接人 xff
  • 如何用maven使用低版本的jdk编译工程

    背景 xff1a 项目中自定义了一些二方库 xff0c 需要把一些工程编译成jar xff0c 给其他项目或者工程做为依赖引入 由于自己的项目使用的是JDK1 8 xff0c 而使用方是一个比较老的项目 xff0c 使用的是JDK 1 6
  • Docker 1.7.1版本pull私有镜像仓库报错,V1,V2等

    注意 xff1a 如下解决方案 xff0c 只能解决pull的问题 xff0c 不能解决push的问题 xff0c 方案请参考 xff1a 解决docker push问题 Docker 1 7版本和Docker CE的配置文件的位置是不同的
  • 解决docker push镜像时denied: requested access to the resource is denied : docker

    背景 xff1a 我用的是harbor管理镜像仓库 xff0c 之前没有上传下载过harbor上的镜像 在我配置了daemon json文件后 xff0c 可以pull镜像了 xff0c 但是我往library目录push的时候仍然有问题
  • Jenkins增加node节点

    setp 1 添加节点 setp 2 配置 1 Launch method 选择Launch slaver agents via SSH 2 填写主机ip 3 添加Credentiais xff0c 也就是主机的username和passw
  • Linux如何设置时区、时间

    查看时间命令 xff1a root span class hljs variable 64 123 span span class hljs symbol work test span span class hljs variable sp
  • centos如何查看linux内核,版本号等

    查看全部信息 xff1a zhangsan span class hljs variable 64 localhost span span class hljs variable span uname a span class hljs c
  • linux如何切换用户

    1 一般的用户增删改查 useradd test 执行后会在 home目录下添加test用户的目录 cat etc passwd 可以查看系统当前的用户 su test 切换用户 passwd test 给test用户创建密码 2 另类用户
  • 解决kubernetes启动容器时,容器一直是ContainerCreating不能running

    表象 kubectl f span class hljs operator span class hljs keyword create span redis yaml kubectl span class hljs keyword get
  • Eclipse创建的Maven项目报错Could not calculate build plan: Plugin

    1 错误描述 br Could not calculate build plan Plugin br org apache maven plugins maven resources plugin 2 5 or one of its dep
  • JAVA同一个类内方法调用AOP解决办法

    1 问题现象 64 Around 34 execution com unicom hl service TowerPayService processInsert 34 public Object around ProceedingJoin
  • Python多进程任务如何识别谁是谁

    在Python多进程 多线程编程中 xff0c 如果使用future和add done callback 经常会遇到如何区分异步任务的问题 这里推荐两种方式 方式一 xff1a 给future新增属性 def call back futur
  • spring如何将环境变量映射到JaveBean里

    spring 获取 xff0c 打印环境变量 public static void main String args Map lt String String gt env 61 System getenv Set lt Map Entry
  • ROS2 tf2广播器(broadcaster)、侦听器(listener)

    tf2介绍 安装依赖 span class token function sudo span span class token function apt get span span class token function install
  • 使用HttpParser类解析网页

    之前发过一篇文章 xff1a 利用String类制作简单的网络爬虫 http blog csdn net gfd54gd5f46 article details 54729874 这是是基于String类里的substring 方法对字符串
  • 《信号与线性系统分析》学习心得

    信号与线性系统分析 学习心得 通过本学期上网课的学习 xff0c 大致对信号有了一定的了解认知 xff0c 下面对该课程的理解发表粗浅认知 xff0c 说起信号 xff0c 大家都不陌生 xff0c 比如老师写的幻灯片 xff0c 朋友的一
  • Codeforces Round 870 (Div. 2)【A、B、C、D】

    文章目录 A Trust Nobody 暴力 B Lunatic Never Content 数学 C Dreaming of Freedom 数学 暴力 D Running Miles 前缀 后缀 传送门 A Trust Nobody 暴
  • FileItem类

    文件上传时需要用到FileItem类 xff0c FileItem是一个接口 xff0c 它的实现类是DiskFileItem 如图为FileItem 接口中定义的方法 xff1a 1 getInputStream xff1a 以流的形式返

随机推荐

  • mysql数据表中文乱码解决办法

    在往 mysql 数据库中插入数据的时候出现数据 汉字 乱码情况 xff1a 在把数据库 xff0c 数据表的编码改为UTF 8后 xff0c 还是乱码 Mysql 的默认编码方式是 Latin1 xff0c 不支持中文 xff0c 因此
  • Spring xml配置文件头解析

    Spring文档中默认的XML文件格式 xff1a lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt beans xmlns 61 34 http www springfra
  • SpringMVC请求静态资源异常

    问题描述 xff1a 使用 REST 风格的资源URL时 xff0c SpringMVC请求静态资源 图片 js等 发生异常 优雅的 REST 风格的资源URL 不希望带 html 或 do 等后缀 若将 DispatcherServlet
  • web项目异常A web application registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister

    异常 xff1a A web application registered the JBDC driver com mysql jdbc Driver but failed to unregister it when the web app
  • Python(Web服务)全链路日志个跟踪

    1 背景 在我们的实际项目中 xff0c 尤其以Web服务为例 xff0c 经常遇到要做日志跟踪的场景 我们经常采用的方式是 xff0c 生成一个trace id 在全链路的调用中都输出这个id进行跟踪 这里需要处理的几个问题是 xff1a
  • @Controller和@RestController的区别?

    64 Controller和 64 RestController的区别 xff1f 官方文档 xff1a 64 RestController is a stereotype annotation that combines 64 Respo
  • get方式传值中文乱码

    如下情况 xff1a lt a id 61 span class hljs string 34 bookname 34 span title 61 span class hljs string 34 span class hljs vari
  • 记我的2016年实习总结

    实习问题记录及经验总结 工具篇 git 问题描述 xff1a 第一次merge分支到主干develop xff0c 遇到冲突时解决方法不当造成主干代码无法运行 原因 xff1a xff08 1 xff09 自己习惯问题 xff0c 写完代码
  • Maven搭建的SSM项目中遇到的问题

    Maven搭建的SSM项目中遇到的问题 1 EL表达式失效 2 装配异常Unable to configure ssm 解决办法 其实这两个问题的出现都是因为servlet版本和java版本不合适造成的 xff0c EL表达式在servle
  • Java小工具Lombok的安装与使用

    1 Lombok简介 Lombok是一个代码生成器 xff0c 可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具 xff0c 通过使用对应的注解 xff0c 可以在编译源码的时候生成对应的方法 使用 lom
  • 日常记录(1)

    数据库连接池Druid Alibaba github地址 xff1a https github com alibaba druidBlog xff1a http blog csdn net pk490525 article details
  • NOA上车「清一色」自主品牌,哪些供应商正在突围前线

    随着入门级L2进入普及周期 xff0c 以NOA xff08 高速 城区 xff09 为代表的L2 43 L2 43 43 赛道 xff0c 正在成为主机厂 硬件供应商 算法及软件方案商的下一波市场制高点的争夺阵地 高工智能汽车研究院监测数
  • 【STM32-初始化的时候是如何通过结构体给寄存器赋值的?】

    使用的是正点原子的源码 xff0c 一直没有搞明白初始化的时候是怎么给相关的寄存器赋值的 xff0c 今天琢磨了一下 xff1a 首先 xff0c 创建了一个GPIO InitTypeDef类型的结构体变量GPIO InitStructur
  • 多元建模基础(二):正态混合分布

    1 正态方差混合模型 xff1a 1 xff09 定义 xff1a 称 显然 xff0c xff0c 混合分布中 xff0c 由W的分布确定一组权值 xff0c 混合变量W可以被解释为来自新信息并影响所有风险因子波动性的扰动 位置向量和分散
  • 神经RRT*:基于学习的最优路径规划 翻译+总结

    摘要 xff1a 快速随机探索树 xff08 RRT xff09 及其变体由于能够快速有效地探索状态空间而非常流行 然而 xff0c 它们对初始解很敏感 xff0c 收敛到最优解的速度很慢 xff0c 这意味着它们需要消耗大量内存和时间来找
  • 解决 Windows has triggered a breakpoint in Linkage.exe问题

    这两天在做一个小项目 xff0c 里面有多线程的东东 xff0c 在调试的时候 总是遇到 Windows has triggered a breakpoint in Linkage exe 的错误 现在将这个问题和大家分享一下 前提是这样的
  • 写一个简单的爬虫,可直接复制学习!!

    简单爬虫直面代码 xff0c 可直接复制学习 这个代码的作用主要是用来获取到百度首页的数据 xff0c 只用来供理解学习 真 小白 福利 todo 首先导包requests 用于爬取数据 import requests todo 定义你要爬
  • Dataloader类

    Dataset让我们可以知道数据在什么位置 xff0c 及数据的的索引对应的数据 Dataloader相当于加载器 xff0c 把数据加载到神经网络中 import torchvision 测试数据集 xff0c train设置为false
  • 如何把截图固定在电脑页面上

    如果我们给人讲网课课 xff0c 或者汇报的时候想把公式 xff0c 定理 xff0c 图片等放在醒目位置做对比 那么我们可能需要把截图放在别的文件的页面上 xff0c 那么我们要怎么做呢 xff1f 方法一 xff1a 利用QQ截图功能
  • 如何写好一个算法

    写出算法有一个比较通用的方法论 xff0c 步骤如下 xff1a 1 理解问题 先弄清楚具体要解决什么问题 做成怎样的程度就可以满足问题需要 xff1f 是需要精确值还是近似值 xff1f 2 分析问题 用数学思路去描述问题的求解过程 3