什么是算法?

2023-11-14

算法

解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法特性:输入、输出、有穷性、确定性、可行性
算法设计的要求:

正确性

1.算法程序没有语法错误
2.算法程序对于合法输入数据能够产生满足要求的输出结果
3.算法程序对于非法的输入数据能够得出满足规格说明的结果
4.算法程序对于精心挑选的、甚至刁难的测试数据都有满足要求的输出结果。**
3、4点是区分度,不能只考虑正数、整型,还要考虑负数、0、字符型。

可读性

便于阅读、理解和交流

健壮性

当输入数据不合法时,能做出相关处理,而不是产生异常和莫名其妙的结果

时间效率高和存储量低

时间效率:算法执行时间
存储量:算法在执行过程中需要的最大存储空间

事前分析估算方法(算法效率的度量方法)

在计算机程序编制前,依据统计方法对算法进行估算。
1.算法采用的策略、方法(根本)
2.编译产生的代码质量(软件支持)
3.问题的输入规模(输入量 n的值)
4.机器执行指令的速度(硬件支持)

函数的渐近增长

给定两个函数f(n)、g(n),如果存在一个整数N,使得对于所有的n>N,f(n)总是比g(n)大,那么,我们说f(n)的增长渐近快于g(n)。
判断算法效率:关注主项(最高阶项)的阶数影响最大
算法时间复杂度:语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n))的数量。
在这里插入图片描述
一般提到的运行时间都是最坏情况下的运行时间
空间复杂度也存在,但不常用

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

什么是算法? 的相关文章

随机推荐

  • matlab求二元函数极值算法_[小白头秃]多元函数基本概念总结

    1 基本概念 点集 区间 领域 一维 直线 实数集 线段 端点 不含端点 二维 平面 实平面 平面区域 边界 不含边界 三维 空间 实空间 曲面 边界 体 表面 不含边界 表面 点和点集的关系 内点 外点 边界点
  • 四叉树初步研究

    JS 四叉树初步研究 四叉树 为何要叫四叉树 二叉树与八叉树又是生么东东 看样子理解起来比较困难 实现该如何入手 树 就是树的结构 树根 树干 树枝 树叶 还有好吃的果实 o 其实树这种结构 很常见的 JSON 不就是最普通的树吗 四叉树的
  • html js清除缓存,js清除浏览器缓存的几种方法

    JS 缓存的问题一直都是我们又爱又恨的东西 也是我们比较头痛的问题 一方面为了提高网站响应速度 减少服务器的负担 和节省带宽 将需要将静态资源缓存在客户端 但是另一方面 当js 文件有改动的时候 如何快速的将客户端缓存的js文件都失效 这是
  • win环境下emacs实现markdown的html预览

    1 参考文档 https libraries io github jrblevin markdown mode 2 实现的核心思想是用pandoc生成html进行markdown的预览 把pandoc exe直接放到emacs bin目录下
  • windows 虚拟机相关功能、组件梳理

    简介 英文名称 中文名称 说明 Container 容器 Guarded Host 受保护的主机 利用远程证明创建并运行受防护的虚拟机 Hyper V Hyper V Management Tools Hyper V 管理工具 包含 GUI
  • Java Stream 实用特性:排序、分组和 teeing

    排序 基本数据类型排序 基本数据类型就是字符串 整型 浮点型这些 也就是要排序的列表中的元素都是这些基本类型的 比如 List
  • C#__资源访问冲突和死锁问题

    线程的资源访问冲突 多个线程同时申请一个资源 造成读写错乱 解决方案 上锁 lock 执行的程序段 同一时刻 只允许一个线程访问该程序段 死锁问题 程序中的锁过多 某一线程需要多个锁资源 而某个资源被另一线程占用 另一个线程同样如此 谁也不
  • 【mysql索引】之多列索引

    第零步 简单说一说 多列索引并不是指建立多个单列索引 而是指在多个字段建立一个索引 在多个列上建立独立的单列索引大部分情况下并不能提高MySQL的查询性能 MySQL在5 0之后推出了索引合并策略 index merge 一定程度上可以使用
  • 解决哥斯拉内存马 pagecontext 的问题

    零基础学黑客 搜索公众号 白帽子左一 前言 注入内存马借助当前的webshell工具而言 冰蝎可以通过创建hashmap放入request response session替换pagecontext来解决 HttpSession sessi
  • Failed to encrypt the section connectionStrings using provider RsaProtectedConfigurationProvider

    使用aspnet regiis exe加密web config connectionStrings时奇奇怪怪的错误 Failed to encrypt the section connectionStrings using provider
  • java必刷题——正则表达式

    题目 需求分析 解题思路 获取用户输入的 需矫正字符总数 根据用户输入的 总数 对错误字符进行矫正 技术栈 java正则表达式 代码实现 package OpenClosedPrinciple import java util Scanne
  • OAuth2.0认证原理浅析

    一 OAuth是什么 OAuth的英文全称是Open Authorization 它是一种开放授权协议 OAuth目前共有2个版本 2007年12月的1 0版 之后有一个修正版1 0a 和2010年4月的2 0版 1 0版本存在严重安全漏洞
  • 深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题(二)

    上一篇主要是对卷积神经网络的整个训练过程中公式以及误差的推导给出详细的分析 博客地址 http blog csdn net u010402786 article details 51226825 这一篇主要对卷积神经网络中出现的一些问题进行
  • 网站更换域名后链接的更改(运维端)

    公司由于备案的问题 需要将域名www servera com更换为www serverb com 但是原先网站所有链接均指向www servera com 这个时候可以通过2种方法 1 在负载均衡器增加301跳转 这样打开每个www ser
  • 阿里云ecs.u1-c1m1.large服务器u1实例通用算力型CPU性能评测

    阿里云服务器ecs u1 c1m1 large为2核2G的通用算力型u1服务器 CPU采用2 5 GHz主频的Intel Xeon Platinum 8163 Skylake 或者8269CY Cascade Lake 阿里云百科分享阿里云
  • Use a SAML Token to Obtain a vCloud Suite Session ID ----使用SAML 令牌 获取VCloud 会话ID

    原文 span style font size 12px Another case is when the client requests a vCloud Suite endpoint on the management node the
  • Web components新玩具——X-View

    X View是一款遵循Web Components规范 类似React语法的JavaScript library 支持的特性 Object assign WeakMap Custom Elements Shadow DOM
  • JS调试日志输出和异常处理

    一 直接启用浏览器调试功能 Chrome浏览器中 1 按下F12打开调试界面 2 选择source选项卡 选中script文件打开 3 单击行增删断点 F10单步调试 F11进入函数 F8下一个断点 鼠标移动到变量上可以查看该变量的值 4
  • 信号量、互斥体和自旋锁的区别

    cpp view plaincopyprint 信号量 互斥体允许进程睡眠属于睡眠锁 自旋锁则不允许调用者睡眠 而是让其循环等待 所以有以下区别应用 1 信号量和读写信号量适合于保持时间较长的情况 它们会导致调用者睡眠 因而自旋锁适合于保持
  • 什么是算法?

    算法 解决特定问题求解步骤的描述 在计算机中表现为指令的有限序列 并且每条指令表示一个或多个操作 算法特性 输入 输出 有穷性 确定性 可行性 算法设计的要求 正确性 1 算法程序没有语法错误 2 算法程序对于合法输入数据能够产生满足要求的