算法复习,数据结构 ,算法特性,冒泡法动态演示,复杂度,辗转相除法*,寻找最大公因数

算法复习

知识点

1. 程序 = 数据结构 + 算法
2. 算法:
  • 求解问题的策略
  • 数据结构:问题的数学模型
  • 程序:微计算机处理问题编制的一组指令
3. **特性 **
  • 有穷性:算法在执行有穷步后能结束
  • 确定性:每一指令有确切的含义,无二义
  • 可行性:每一操作都可以通过已经实现的基本运算执行有限次来实现
  • 输入:零个或多个输入
  • 输出 :一个或多个输出
4. 算法的时间复杂度
  • 针对问题指定基本运算,计数算法所做的基本运算次数 最好、最坏、平均情况下的时间复杂度
  • **最坏情况下的时间复杂度 **:算法求解输入规模为n的实例所需要的最长时间W(n).
  • 最好情况下的时间复杂:算法求解输入规模为n的实例所需要的最短时间B(n).
  • 平均情况下的时间复杂度: 在指定输入的概率分布下,算法求解输入规模为n的实例所需要 的平均时间 A(n).
5. 常见算法
    1. 冒泡法

      • i

      • 一次排序就可以把最大或最小的排序出来

        ##the most import exchange 核心代码  for i in range(len(a)):if a[i]>a[i+1]:a[i],a[i+1] = a[i+1],a[i]##swap(a[i],a[i+1])## 可运行代码
        for j in range(0,len(a)-1):for i in range(0,len(a)-1-j):if a[i]>a[i+1]:a[i], a[i + 1] = a[i + 1], a[i]        
        
    • 复杂度

      • 最优O(n)
      • 最差O(n*(n-1))
      • 平均O(n“2)
    1. 顺序查找

      • img

      • ###核心代码
        for i in range(len(a)):if des == a[i]:return i
      • 时间复杂度:

        • 最优O(1) 一次找到
        • 最差O(n)最后找到
        • 平均: O(n+1/2)
    2. 1.1 Euclid(m, n),也叫辗转相除法 寻找最大公因数

      • 输入:非负整数 m, n,其中m与n不全为0

      • 输出:m 与 n 的最大公约

      • 相关链接:(12 封私信 / 18 条消息) GCD算法描述 - 知乎 (zhihu.com)

      • ### 理解 首先假设最大公因数为 t,M>N   那么 m = bt   n = at  b>a  
        ### 核心代码
        while n>0m,n = n,m%nreturn m###n最终n会被m整除 这个时候m就是t
        
      • 学习链接:辗转相除法介绍 - 知乎 (zhihu.com)

转相除法介绍 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/324578532)

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

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

相关文章

2023年12月4日支付宝蚂蚁庄园小课堂小鸡宝宝考考你今日正确答案是什么?

问题:你知道电杆上安装的“小风车”有什么用途吗? 答案:防止鸟类筑巢 解析:小风车一般做成橙色,因为橙色是一种可令野鸟产生恐慌感的颜色;小风车在转动时,会发出令野鸟害怕的噪声;…

LLM推理部署(四):一个用于训练、部署和评估基于大型语言模型的聊天机器人的开放平台FastChat

FastChat是用于对话机器人模型训练、部署、评估的开放平台。体验地址为:https://chat.lmsys.org/,该体验平台主要是为了收集人类的真实反馈,目前已经支持30多种大模型,已经收到500万的请求,收集了10万调人类对比大模型…

4个解决特定的任务的Pandas高效代码

在本文中,我将分享4个在一行代码中完成的Pandas操作。这些操作可以有效地解决特定的任务,并以一种好的方式给出结果。 从列表中创建字典 我有一份商品清单,我想看看它们的分布情况。更具体地说:希望得到唯一值以及它们在列表中出…

uniapp 微信小程序连接蓝牙卡死

解决方法,需要同意隐私保护协议,否则不能开启蓝牙权限和定位权限,会导致定位失败

实用工具网站合集值得收藏![搜嗖工具箱]

最近一段时间有点忙,一直没有更新在此给大家说声抱歉哈,有些小伙伴儿私信说想要用到的工具,茶壶儿也会尽可能满足大家!今天我们要分享的工具主要有以下几款,我们来一起看一下吧? 一帧秒创 https://aigc.y…

万界星空科技灯具行业MES介绍

中国是LED照明产品最大的生产制造国,如今,我国初步形成了包括LED外延片的生产、LED芯片的制备、LED芯片的封装以及LED产品应用在内的较为完超为产业链,随着LED照明市场渗诱率的快速警升,LED下游应用市场将会越来越广阔。这也将推动…

电机工厂怎么才能有效的管理生产?

电机工厂要想更有效地管理,可以从以下几个方面入手:采用数字化软件管理工具 数字化软件管理工具可以帮助电机工厂实现工艺流程自动化、数据管理、生产计划排程等。例如,采用ERP(企业资源计划)系统可以协调管理生产过程…

SpringCloud Gateway

目录 一、gateway简介二、gateway快速入门2.1 引入依赖2.2 编写启动类2.3 编写基础配置和路由规则 三、断言工厂四、过滤器工厂4.1 路由过滤器的种类4.2 请求头过滤器4.3 默认过滤器 五、全局过滤器5.1 全局过滤器作用5.2 自定义全局过滤器5.3 过滤器执行顺序 六、跨域问题6.1 …

Sailfish OS 移动操作系统

Jolla 是一家曾经致力于开发智能手机和平板电脑的公司,但是这些产品并没有取得成功。后来 Jolla 将重心转向了基于 Linux 的 Sailfish OS(旗鱼),并将其应用于现有设备上。Sailfish OS 是由 Jolla 在 MeeGo 基础上开发的移动操作系…

鸿蒙绘制折线图基金走势图

鉴于鸿蒙下一代剥离aosp,对于小公司而言,要么用h5重构,要么等大厂完善工具、等华为出转换工具后跟进,用鸿蒙重新开发一套代码对于一般公司而言成本会大幅增加。但对于广大开发者来说,暂且不论未来鸿蒙发展如何&#xf…

实现跨平台高手必修的课程,玩转Flutter动态化的解决的一些精华部分总结

Flutter作为一种快速、可靠的跨平台移动应用开发框架,在动态化方面也有很多令人兴奋的特性。本文将总结Flutter动态化的一些精华部分,帮助开发者更好地利用这些功能。 正文: 在实现跨平台高手必修的课程中,Flutter动态化是一个不…

区块链媒体:Web3.015个方法解析-华媒舍

Web3.0是第三代互联网的发展阶段,相较于Web2.0,它具有更高的可信性、安全性和去中心化特点。在Web3.0时代,推广变得更为重要,因为吸引用户和提高品牌知名度对于在竞争激烈的市场中脱颖而出至关重要。本文将揭秘推广Web3.0的15个秘…

P2 Linux系统目录结构

前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_ChenPi的博客-CSDN博客》✨✨✨ 🛸推荐专…

如何跑通跨窗口渲染:multipleWindow3dScene

New 这是一个跨窗口渲染的示例,用 Three.js 和 localStorage 在同一源(同产品窗口)上跨窗口设置 3D 场景。而这也是本周推特和前端圈的一个热点,有不少人在争相模仿它的实现,如果你对跨窗口的渲染有兴趣,可…

linux 安装go环境

下载go SDK All releases - The Go Programming Language 此处建议选择与本机windows一样的版本,便于调试,若不涉及本地windows,则忽略此提示 上传到linux 解压go SDK 执行下述命令进行解压 tar -xvf go1.19.linux-amd64.tar.gz 此处选择…

tcp/ip协议 error=10022 Winsock.reg Winsock2.reg

tcp/ip协议 error10022 这2个注册表选项千万不能删除,否则上不了网。 按下windows键R键,输入regedit,打开注册表,在文件目录里找到如下两个文件夹,删除这两个文件夹。 路径:HKEY_LOCAL_MACHINE\System\C…

12.二维字符数组——输出basic和BASIC

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维字符数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 输出basic和BASIC 二、题目分析 法一&#xff1a; for(i0;i<1;i){ for(j0;j<6;j){ putchar(a[i][j]); pri…

RxJava

Single 使用 Flowable 比较重一般使用Single onSubscribe 产生订阅时调用 线程切换1 2 发送顺序事件.just just 源码 钩子方法,进行验证再处理 Single 对象 订阅,RxJavaPlugins.onSubscribe 钩子方法,产生订阅和过滤 Single 核心方法,抽象的,实现为SingleJust 订阅和执行成功回…

视图层与模板层

视图层 1 视图函数 一个视图函数&#xff0c;简称视图&#xff0c;是一个简单的Python 函数&#xff0c;它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容&#xff0c;一个重定向&#xff0c;一个404错误&#xff0c;一个XML文档&#xff0c;或者一张图片. . . 是…

93基于matlab的萤火虫算法优化支持向量机(GSA-SVM)分类模型

基于matlab的萤火虫算法优化支持向量机&#xff08;GSA-SVM&#xff09;分类模型&#xff0c;以分类精度为优化目标优化SVM算法的参数c和g&#xff0c;输出分类可视化结果。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 93萤火虫算法优化支持向量机 (xiaoh…