热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sha3算法_【CS】Python算法概念篇

目录大O表示法递归分而治之D&C最短路径算法贪婪算法动态规划K邻近算法其他1.大O表示法O(logn)对数时间,如二分查找O(n)线性时间,如顺序查找O
4fba391011234460c2be886f5d6f2ec7.png

目录

  1. 大O表示法
  2. 递归
  3. 分而治之D&C
  4. 最短路径算法
  5. 贪婪算法
  6. 动态规划
  7. K邻近算法
  8. 其他

1.大O表示法

  • O(logn)对数时间,如二分查找
  • O(n)线性时间,如顺序查找
  • O(nlogn) 如快速排序、归并排序
  • O(n^2) 如冒泡、选择、插入、谢尔排序
  • O(n!) 如旅行商问题

2.递归

1 检查盒子里每个东西
2 是否是目标
3.1 是目标->到4
3.2 不是目标仍未盒子->回1
4 结束

3.分而治之D&C

  • 找出基线条件(尽可能简单),问题分解缩小规模直到符合基线条件

4.最短路径算法

  • 正数加权无环图:Dijkstra算法
  • 非加权图:广度优先BFS
广度优先搜索BFS
用处:A到B是否有路径/哪条路最短
应用:国际跳棋/拼写检查器/找关系最近的医生
  • 负权边图:Bellman-Ford算法

5.贪婪算法

  • 定义:每步都采取最优(局部最优->全局最优)找到近似解
  • 应用
NP完全问题(Non-deterministic Polynomial Complete)
定义: 涉及组合/不能拆为小问题有各种情况/序列难解决/集合难解决/集合覆盖/旅行商
(1)旅行商问题
(2)集合覆盖问题:选广播台覆盖州/选球员技能覆盖
(3)背包问题
(4)卡车装箱
(5)教室调度

6.动态规划

  • 简介:涉及网格,各单元格为子问题,优化条件下优化某种指标
  • 应用:背包问题/最长公共子串/最长公共子序列/DNA链/gitdiff/断字/编辑距离(Levenshtein distance)

7.K邻近算法

  • 分类时看距离它最近的三个邻居
  • 应用:推荐系统(用户分类/面包预测销量(天气/日期/活动))

8.其他

  • 机器学习
应用: OCR:线段、点、曲线/语言识别、人脸识别/垃圾邮件过滤器:朴素贝叶斯分类器/预测股票市场
  • 二叉树相关
应用: B树/红黑树/堆/伸展树
  • 反向索引
应用: 单词映射页面
  • 傅里叶变换
应用:处理信号(压缩音乐/压缩图片/地震监测/DNA分析)
  • 并行算法
简介: 速度非线性提升(有管理开销+负载均衡)
  • 分布式算法
简介: MapReduce+Hadoop
  • 布隆过滤器/Hyperloglog
简介: 概率型数据结构(会错搜不会漏搜)
Hyperloglog判断搜索是否在日志中,近似计算集合中不同元素数
  • SHA算法
应用: 比较文件/检查密码(SHA-2/SHA3/bcrypt)
  • 局部敏感的散列算法(simhash)
应用: 检查相似程度(判断网页是否已收集/判断论文是否抄袭)
  • Diffle-Hellman密钥交换(公钥+私钥)
应用: 双方无需知道加密算法+难以破解
  • 线性规划
定义: 给约束条件最大程度下改善指标
应用: 原材料数量约束下利润最大/时间预算约束下支持票数最大



推荐阅读
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • 本文整理了Java中org.assertj.core.api.AbstractPathAssert.existsNoFollowLinks()方法的一些代码示例,展示了 ... [详细]
  • Ihavethisfollowinginputfile:我有以下输入文件:test.csvdone_cfg,,,,port<0>,clk_in,subcktA,ins ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 装饰模式(Deocrator)     动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。    所谓装饰,就是一些对象给主题 ... [详细]
author-avatar
疯务情堂
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有