Hello 算法 1.2.0 繁体中文 Go 版”從這個意義上看,這本 書並非完全“免費”。為了不辜負你為本書所付出的寶貴“注意力”,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 與處理資料的理想媒介。無論是電玩遊戲的逼真畫面、自動駕駛的智慧決策,還是 AlphaGo 的精彩棋局、 ChatGPT 的自然互動,這些應用都是演算法在電腦上的精妙演繹。 事實上,在電腦問世之前,演算 的進步,演算法逐漸變得更加精細和複雜。從巧奪天工的匠人 技藝、到解放生產力的工業產品、再到宇宙運行的科學規律,幾乎每一件平凡或令人驚嘆的事物背後,都隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“0 码力 | 385 页 | 18.80 MB | 10 月前3
Go可观测性实践果, TraceContext就是一个Context上下文对象。 Inject Extract 数据流转 使用Collector的好处在于一些 计算操作可以再Collector中统 一处理,一些逻辑如压缩、过滤、 配置变更等可以集中到 Collector中实现,服务只需要 实现很薄的一层埋点、采样逻辑 即可,这也能使得链路追踪对业 务服务本身的影响降到最低。 链路追踪分析 ,后续可通 过指定区间筛选样本,也可以统计样本总数。 插桩(Hook) 指标数据 指标计算 数据流转 使用Collector的好处在于一些 计算操作可以再Collector中统 一处理,一些逻辑如压缩、过滤、 配置变更等可以集中到 Collector中实现,服务只需要 实现很薄的一层埋点、采样逻辑 即可,这也能使得链路追踪对业 务服务本身的影响降到最低。 数据大盘 谢谢0 码力 | 35 页 | 2.88 MB | 1 年前3
03. Golang 在隐私计算平台建设中的实践 - 刘敬趣链科技版权所有©2016 – 2021 18 隐私计算算法框架 协商算法 实例例版本 检查参与⽅方 任务状态 校验多⽅方输⼊入 格式是否匹配 参与⽅方掉线 检测 算 法 管 理理 异 常 处 理理 算 法 实 例例 ADD CMP PIR PSI 优点 01.算法流程基于数据驱动异步执⾏行行 异步执⾏行行并⾏行行化,提⾼高算法性能 02.算法版本协商 实现新旧节点版本兼容,全⽹网节点可错0 码力 | 37 页 | 6.20 MB | 1 年前3
Go Web编程型”一行中,若显示“x64-based PC”,即为64位系统;若显示“X86-based PC”,则为32位系统。 Mac系统用户建议直接使用64位的,因为Go所支持的Mac OS X版本已经不支持纯32位处理器了。 8 Linux系统用户可通过在Terminal中执行命令uname -a来查看系统信息: 64位系统显示 <一段描述> x86_64 x86_64 x86_64 GNU/Linux 行起来了 如何监听端口? 如何接收客户端请求? 如何分配handler? 前面小节的代码里面我们可以看到,Go是通过一个函数ListenAndServe来处理这些事情的,这个底层其实这样处 理的:初始化一个server对象,然后调用了net.Listen("tcp", addr),也就是底层用TCP协议搭建了一个服 务,然后监控我们设置的端口。 下面代码来自Go的http包的源码,通过 理器,实现了session从创建到销毁的整个过程。然后定义了Provider的接 口,使得可以支持各种后端的session存储,然后我们在第三小节里面介绍了如何使用内存存储来实现session的管 理。第四小节我们讲解了session劫持的过程,以及我们如何有效的来防止session劫持。通过这一章的讲解,希望能 够让读者了解整个sesison的执行原理以及如何实现,而且是如何更加安全的使用session。0 码力 | 295 页 | 5.91 MB | 1 年前3
Go基础语法宝典它没有字符转义,换行 也将原样输出。例如本例中会输出: 错误类型 Go内置有一个 error 类型,专门用来处理错误信息,Go的 package 里面还专门有一个包 errors 来处 理错误: 分组声明 在Go语言中,同时声明多个常量、变量,或者导入多个包时,可采用分组的方式进行声明。 例如下面的代码: 可以分组写成如下形式: s := "hello," m := " 转化为reflect对象之后就可以进行一些操作了,也就是将reflect对象转化成相应的值,例如 获取反射值能返回相应的类型和数值 最后,反射的话,那么反射的字段必须是可修改的,前面学习过传值和传引用,这个里面也是一样的道 理。反射的字段必须是可读写的意思是,如果下面这样写,那么会发生错误 如果要修改相应的值,必须这样写 更多Golang资源包:https://github.com/0voice/Introduction-to-Golang0 码力 | 47 页 | 1020.34 KB | 1 年前3
2.2.3 Go语言的抢占式调度entry point GDB Cutter Hopper rizin 启动过程 通过 entry point 找到 Go 进程的执⾏⼊⼝ runtime.rt0_go argc argv 处 理 全 局 m0 g0 初 始 化 m0: Go 程序启动后创建的第⼀个线程; 获 取 CPU 核 ⼼ 数 初 始 化 内 置 数 据 结 构 开 始 执 ⾏ ⽤ 户 main 函 数0 码力 | 44 页 | 7.43 MB | 1 年前3
2.1.7 谈如何构建易于拆分的单体应用度过细,难以抓住核⼼诉求! 建模:通过表象看本质 07 业务实体—物 ➢ 业务实体:代表参与者执⾏⼀个或多个⽤例时所使⽤的“事物”。⽽这个“事物”才正是我们所需要分析的核⼼概念。 ➢ 难点:理不清软件世界中需要的“事物”怎么办? ➢ 解法:联系⽣活中的类似场景进⾏推演;想想⽣活中什么样的场景跟直播平台很类似? 建模:通过表象看本质 08 动态视图—规则 ➢ 动态视图:通过对象之间的交互来说明⽤例是如何被实现的0 码力 | 27 页 | 13.04 MB | 1 年前3
微服务容灾治理按钮,对吧? 那我们想想,如果我们的服务CPU被打满了,是不是后⾯所有的请求也都被卡住了?等服务处理完请 求的时候,⽤⼾那⾥可能已经超时离开了,结果服务器很忙,但都是做的⽆⽤功。如果这⾥不能理 解,停下来好好思考⼀番,如果还不懂的话,可以来go-zero群⾥讨论讨论。。。 2.1模拟CPU密集型服务 有⼈可能会问CPU密集型服务怎么定义?你的服务CPU会打满吗?处理请求会包含复杂的计算逻辑0 码力 | 13 页 | 1.68 MB | 1 年前3
3.云原生边云协同AI框架实践• 初始化Sedna CRD client,Controller 会监听Sedna CR 增删改查的变化,并 执行对应的处理逻辑。 • 初始化UpstreamController,用于处 理边缘LC上传的消息 • 针对每个特性(协同推理、终身学习 等),绑定对应的消息处理函数 【4】CRD client初始化 // New creates a new LifelongLearningJob0 码力 | 37 页 | 2.36 MB | 1 年前3
对 Go 程序进行可靠的性能测试Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 正态分布的由来 36 本科的概率论通常会直接给出正态分布的定义,然后讲授中心极限定理。但实际上早年数学见是先研究出中心极限定 理,而后发现正态分布的形式在后续研究中非常常见,就将其称之为正态分布。 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 更复杂的建模 37 对结果进行回归,肉眼可见的性能下降0 码力 | 37 页 | 1.23 MB | 1 年前3
共 19 条
- 1
- 2













