Hello 算法 1.2.0 繁体中文 Go 版初識演算法 www.hello‑algo.com 12 1. 將撲克牌劃分為“有序”和“無序”兩部分,並假設初始狀態下最左 1 張撲克牌已經有序。 2. 在無序部分抽出一張撲克牌,插入至有序部分的正確位置;完成後最左 2 張撲克已經有序。 3. 不斷迴圈步驟 2. ,每一輪將一張撲克牌從無序部分插入至有序部分,直至所有撲克牌都有序。 圖 1‑2 撲克排序步驟 上述整理撲克牌的方法本質上是“插入排 2. 第二步:判斷漸近上界 時間複雜度由 ?(?) 中最高階的項來決定。這是因為在 ? 趨於無窮大時,最高階的項將發揮主導作用,其他 項的影響都可以忽略。 表 2‑2 展示了一些例子,其中一些誇張的值是為了強調“係數無法撼動階數”這一結論。當 ? 趨於無窮大時, 這些常數變得無足輕重。 表 2‑2 不同操作數量對應的時間複雜度 操作數量 ?(?) 時間複雜度 ?(?(?)) 100000 鏈結串列或二者的組合實現的。例如,堆疊和佇列既可以使用 陣列實現,也可以使用鏈結串列實現;而雜湊表的實現可能同時包含陣列和鏈結串列。 ‧ 基於陣列可實現:堆疊、佇列、雜湊表、樹、堆積、圖、矩陣、張量(維度 ≥ 3 的陣列)等。 ‧ 基於鏈結串列可實現:堆疊、佇列、雜湊表、樹、堆積、圖等。 鏈結串列在初始化後,仍可以在程式執行過程中對其長度進行調整,因此也稱“動態資料結構”。陣列在初始 化0 码力 | 385 页 | 18.80 MB | 10 月前3
基于Go的大数据平台-党合萱时序数据库 ⽇日志检索服务 XSpark Report Studio 简单 · 可信赖 内容提要 • 系统设计分析与架构 • 多种上下游适配 • ⾼高吞吐/低延迟问题探究 • ⾼高可⽤用与⽔水平扩展 • ⾃自动化运维 • Go的应⽤用 简单 · 可信赖 系统设计分析与架构 构建系统的挑战 export service系统全貌 简单 · 可信赖 多种上下游适配 简单 · 如何感知上下游压⼒力力 • 响应时间 • 特定错误码 • 超时错误 快速启动还是慢启动 • 速度的控制 退避策略略 • 起始阶段慢增⻓长 • 指数增⻓长 简单 · 可信赖 ⾼高可⽤用与⽔水平扩展 简单 · 可信赖 master/server架构 • master/server间采⽤用golang rpc通信 • server上报⼼心跳证明⾃自⼰己存活,并汇报所 执⾏行行任务的情况 server⾼高可⽤用,节点故障时任务会被调度到其他正常节点 简单 · 可信赖 ⽔水平扩展 • 资源不不⾜足时加⼊入新的机器器作为新server • 新server从zk上获取master身份信息 • 新server上报⼼心跳给master • 其他任务被调度⾄至新server 简单 · 可信赖 ⽔水平扩展 • 资源不不⾜足时加⼊入新的机器器作为新server • 新server从zk上获取master身份信息0 码力 | 34 页 | 1.26 MB | 1 年前3
对 Go 程序进行可靠的性能测试--help usage: benchstat [options] old.txt [new.txt] [more.txt ...] options: -alpha α 设置显著性水平 α 的值(默认 0.05) -delta-test test 设置显著性检验的类型,支持 utest/ttest/none(默认 utest) -geomean 假设检验 20 假设检验:利用样本判断对总体的假设是否成立的过程 零假设 H0:想要驳回的论点 备择假设 H1:拒绝零假设后的备用项,我们想要证明的论点 p 值:零假设发生的概率 显著性水平:可靠程度 例如:在性能基准测试中, H0:代码修改前后,性能没有提升 H1:代码修改前后,性能有显著提升 p < 0.05:H0 发生的概率小于 5%,在至少 95% 的把握下,性能有显著提升 广泛比较两个不同群体的所有差异,从中找出具有差异的特征,宣称是造成两个群体不同的原因。 ⇒ 在不对代码进行优化的情况下,反复对不同的性能测试结果样本进行显著性检验,直到找到能够使 p 值能 够满足显著性水平,宣称性能得到了提升。 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 机器过热 29 对结果进行回归,肉眼可见的性能下降 https://github0 码力 | 37 页 | 1.23 MB | 1 年前3
用Go语言实现推送服务器• 高并发 • 可靠性 • 高性能 • 支持水平扩展 • 无单点故障 Go语言特性 • 静态的、编译的 • 自动内存回收 • 命令式编程 • 函数可以作为值 • 面向并发 • 内置RPC支持 推送服务器要求的应对 • 高并发 – goroutine • 可靠性 – 使用Redis暂存消息 • 高性能 – 静态编译语言 • 支持水平扩展 – 使用RPC组成集群 • 无单点故障0 码力 | 25 页 | 260.04 KB | 1 年前3
Hello 算法 1.0.0b1 Golang版,而在输入数据量较大时,测试结果截然相反。因此,若想要达 到具有说服力的对比结果,那么需要输入各种体量数据,这样的测试需要占用大量计算资源。 理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评 况。因此,在展开学习数据结构与算法之前,建议读者先对复杂度建立起初步的了解,并且能够完成简单案例 的复杂度分析。 2.2. 时间复杂度 2.2.1. 统计算法运行时间 运行时间能够直观且准确地体现出算法的效率水平。如果我们想要 准确预估一段代码的运行时间,该如何做 呢? 1. 首先需要 确定运行平台,包括硬件配置、编程语言、系统环境等,这些都会影响到代码的运行效率。 2. 评估 各种计算操作的所需运行时间,例如加法操作 rust‑analyzer。 12.2. 一起参与创作 � 开源的魅力 纸质书籍的两次印刷的间隔时间往往需要数年,内容更新非常不方便。但在本开源 HTML 书 中,内容更迭的时间被缩短至数日甚至几个小时。 由于作者水平有限,书中内容难免疏漏谬误,请您谅解。如果发现笔误、无效链接、内容缺失、文字歧义、解 释不清晰、行文结构不合理等问题,请您帮忙修正,以帮助其他读者获取更优质的学习内容。所有撰稿人将被 展示在仓库0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版,而在输入数据量较大时,测试结果截然相反。因此,若想要达 到具有说服力的对比结果,那么需要输入各种体量数据,这样的测试需要占用大量计算资源。 理论估算 既然实际测试具有很大的局限性,那么我们是否可以仅通过一些计算,就获知算法的效率水平呢?答案 是肯定的,我们将此估算方法称为「复杂度分析 Complexity Analysis」或「渐近复杂度分析 Asymptotic Complexity Analysis」。 复杂度分析评 况。因此,在展开学习数据结构与算法之前,建议读者先对复杂度建立起初步的了解,并且能够完成简单案例 的复杂度分析。 2.2. 时间复杂度 2.2.1. 统计算法运行时间 运行时间能够直观且准确地体现出算法的效率水平。如果我们想要 准确预估一段代码的运行时间,该如何做 呢? 1. 首先需要 确定运行平台,包括硬件配置、编程语言、系统环境等,这些都会影响到代码的运行效率。 2. 评估 各种计算操作的所需运行时间,例如加法操作 rust‑analyzer。 12.2. 一起参与创作 � 开源的魅力 纸质书籍的两次印刷的间隔时间往往需要数年,内容更新非常不方便。但在本开源 HTML 书 中,内容更迭的时间被缩短至数日甚至几个小时。 由于作者水平有限,书中内容难免疏漏谬误,请您谅解。如果发现笔误、无效链接、内容缺失、文字歧义、解 释不清晰、行文结构不合理等问题,请您帮忙修正,以帮助其他读者获取更优质的学习内容。所有撰稿人将被 展示在仓库0 码力 | 202 页 | 15.73 MB | 1 年前3
Golang 微服务在腾讯游戏用户运营领域的探索及实践多核并行Parallel Lua协程绑定Go程 IO阻塞自动切换 高可用 负载均衡 寻址 限流 缓存 降级 SLA保证 并行执行单元 消息总线 屏蔽本地网络差异 微执行单元 水平伸缩 运营监控 旁路实时上报 自定义告警策略 收敛算法 海量日志查询 DSL加速敏捷 微服务编排 Node API调用 Graph 条件分支 Flow 编排策略 DSL设计0 码力 | 34 页 | 1.22 MB | 1 年前3
1.每秒百万数据点 Go 应用监控系统演进VictoriaMetrics 收益 ● 高性能,看板加载时间从 120s 降低到 10s ● 兼容 Prometheus,可以无缝迁移 ● 成本更低,只需要 thanos 的 50% 资源 ● 扩展性强,所有组件支持水平扩容 2023 年底架构 VictoriaMetrics 架构 VMStorage VMSelect VMInsert Why VictoriaMetrics so good? 第四部分0 码力 | 42 页 | 2.32 MB | 1 年前3
Go 构建大型开源分布式数据库技术内幕Redis HBase Cassandra MongoDB ... Google Spanner Google F1 TiDB RDBMS NoSQL NewSQL NewSQL 是什么 ● 水平扩展 ● 事务 ● 高可用 & 自动故障恢复 ● SQL TiDB ● Scalability as the first class feature ● SQL is necessary0 码力 | 44 页 | 649.68 KB | 1 年前3
2.1.3 如何用Go模拟CPUSP跟常见的栈指针一样,压栈SP则减掉对应字长 • 栈最大0xFF,咦……stackoverflow? • ZeroPage因为电路原因,寻址速度比一般指令快 • 中断与向量 • IRQ = 可忽略的中断 = 水平触发 = 读取0xFFFC里的绝对地址 • NMI = 不可忽略的中断 = 上沿触发 = 读取0xFFFE里的绝对地址 • Reset = 重置 = 读取0xFFFA 里的地址 Go模拟6502控制单元0 码力 | 42 页 | 7.10 MB | 1 年前3
共 15 条
- 1
- 2













