热门标签 | 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密钥交换(公钥+私钥)
应用: 双方无需知道加密算法+难以破解
  • 线性规划
定义: 给约束条件最大程度下改善指标
应用: 原材料数量约束下利润最大/时间预算约束下支持票数最大



推荐阅读
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
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社区 版权所有