Hello 算法 1.2.0 繁体中文 Dart 版
5 章 堆疊與佇列 www.hello‑algo.com 96 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 378 页 | 18.77 MB | 9 月前3Hello 算法 1.2.0 繁体中文 JavaScript 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 379 页 | 18.78 MB | 9 月前3Hello 算法 1.2.0 繁体中文 TypeScript 版
然而,由於鏈結串列節點需要額外儲存指標,因此鏈結串列節點佔用的空間相對較大。 綜上,我們不能簡單地確定哪種實現更加節省記憶體,需要針對具體情況進行分析。 5.1.4 堆疊的典型應用 ‧ 瀏覽器中的後退與前進、軟體中的撤銷與反撤銷。每當我們開啟新的網頁,瀏覽器就會對上一個網頁執 行入堆疊,這樣我們就可以通過後退操作回到上一個網頁。後退操作實際上是在執行出堆疊。如果要同 時支持後退和前進,那麼需要兩個堆疊來配合實現。 雙向佇列兼具堆疊與佇列的邏輯,因此它可以實現這兩者的所有應用場景,同時提供更高的自由度。 我們知道,軟體的“撤銷”功能通常使用堆疊來實現:系統將每次更改操作 push 到堆疊中,然後透過 pop 實 現撤銷。然而,考慮到系統資源的限制,軟體通常會限制撤銷的步數(例如僅允許儲存 50 步)。當堆疊的長 度超過 50 時,軟體需要在堆疊底(佇列首)執行刪除操作。但堆疊無法實現該功能,此時就需要使用雙向佇 列來 有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建0 码力 | 384 页 | 18.80 MB | 9 月前32019-2021 美团技术年货 前端篇
美团开源 Logan Web:前端日志在 Web 端的实现 255 外卖客户端容器化架构的演进 270 Flutter 包大小治理上的探索与实践 297 美团外卖持续交付的前世今生 326 微前端在美团外卖的实践 352 积木 Sketch 插件进阶开发指南 372 积木 Sketch Plugin:设计同学的贴心搭档 400 Native 地图与 Web 融合技术的应用与实践 在中大型团队的应用实践 610 美团 iOS 工程 zsource 命令背后的那些事儿 627 客户端单周发版下的多分支自动化管理与实践 635 美团外卖前端容器化演进实践 643 Bifrost 微前端框架及其在美团闪购中的实践 664 Litho 的使用及原理剖析 680 Android 兼容 Java 8 语法特性的原理分析 697 美团外卖商家端视频探索之旅 715 让 Flutter 栈日益规范的趋势下,React 技术栈在我们技术体系环节中的地位变得越来越重要。 在广告、营销这些推广属性的业务上,在各个终端(包括美团 App、美团外卖 App、 大众点评 App,以及站外的微信小程序、百度小程序、头条 & 抖音小程序等其他终 端)实现“一次开发,同步需求上线”的业务诉求也变得越来越多。在这样的背景下, 我们定义了 React2X 应用的核心场景: ● 面对美团内0 码力 | 738 页 | 50.29 MB | 1 年前3廖雪峰JavaScript教程
即将推出,请耐心等待。等待不耐烦的,请关注微博@廖雪峰 原文: https://wizardforcel.gitbooks.io/liaoxuefeng/content/js/65.html buffer 9.4.4 buffer - 258 - 本文档使用 书栈(BookStack.CN) 构建 9.5 Web开发 即将推出,请耐心等待。等待不耐烦的,请关注微博@廖雪峰 原文: https://wizardforcel 即将推出,请耐心等待。等待不耐烦的,请关注微博@廖雪峰 原文: https://wizardforcel.gitbooks.io/liaoxuefeng/content/js/67.html koa 9.5.1 koa - 260 - 本文档使用 书栈(BookStack.CN) 构建 9.5.2 mysql 即将推出,请耐心等待。等待不耐烦的,请关注微博@廖雪峰 原文: https://wizardforcel 即将推出,请耐心等待。等待不耐烦的,请关注微博@廖雪峰 原文: https://wizardforcel.gitbooks.io/liaoxuefeng/content/js/69.html swig 9.5.3 swig - 262 - 本文档使用 书栈(BookStack.CN) 构建 9.6 自动化工具 即将推出,请耐心等待。等待不耐烦的,请关注微博@廖雪峰 原文: https://wizardforcel0 码力 | 264 页 | 2.81 MB | 10 月前3mpvue小程序开发框架和最佳实践
版本升级 最流⾏行行的 ⼩小程序框架 社区第三⽅方库 ⽀支持 泛⼩小程序平台 动态化⽅方案 跨端 动态化 泛⼩小程序 开源 社区建设 微信 ⼩小程序 动态化能⼒力力展望 能⼒力力扩展和共建 社区⽣生态完善 专注微信⼩小程序⽀支持 将 mpvue 建设成最流⾏行行的⼩小程序开发框架 完善社区技术⽣生态 & 邀请社区贡献者 泛⼩小程序解决⽅方案 & 多应⽤用适配0 码力 | 31 页 | 3.17 MB | 1 年前3IMWebConf 2017 前端开发者大会
React Fiber 天猪 阿里游戏前端负责人,EggJS 核心开发者。 Egg & Node.js 从小 工坊走向企业级开发 Egg 是阿里 Node.js 的核心 基础框架,通过「微内核 + 插件机制 + 框架定制能 力」,完美达成生态共建和 差异化定制的平衡点。Egg 已开源近一年,本次分享将 介绍 Egg 的设计理念和特 点,演示在团队里如何渐进 式演进,希望能帮助开发者 Ruby 社区学习 2. 从 TJ 的代码中学习 主要涉及前端框架、工具、 社区文化等方面的知识。 jeffreyluo(罗嘉 辉) 腾讯SNG高级前端工程师,2013 加入腾讯, 先后负责微信钱包,QQ钱包相关业务,现在是 QQ钱包,QQ智慧校园的核心开发者,喜欢前 端技术,在框架/工具方面有较深的经验沉淀。 QQ钱包优化实践 1. 性能优化:service worker 在QQ钱包的实践0 码力 | 8 页 | 698.99 KB | 1 年前3阮一峰 JavaScript 教程
框架库 React,引入了新的 JSX 语法,使得 UI 层可以用组件开发,同时引入了网页应用是状态机的 概念。 2014年,微软推出 JavaScript 的 Windows 库 WinJS,标志微 软公司全面支持 JavaScript 与 Windows 操作系统的融合。 2014年11月,由于对 Joyent 公司垄断 Node 项目、以及该项目进 展缓慢的不满,一部分核心开发者离开了 对象 Promise 对象 概述 Promise 对象的状态 Promise 构造函数 Promise.prototype.then() then() 用法辨析 实例:图片加载 小结 微任务 参考链接 Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提 供统一接口。它起到代理作用(proxy),充当异步操作与回调函数之 间的中介,使得异步操作具备同步操作的接口。Promise 是同步任务, 而 then 的回调函数属于异步任务,一定晚于同步任务执行。 但是,Promise 的回调函数不是正常的异步任务,而是微任务 (microtask)。它们的区别在于,正常任务追加到下一轮事件循 环,微任务追加到本轮事件循环。这意味着,微任务的执行时间一定早 微任务 Promise 对象 - 534 - 本文档使用 书栈(BookStack.CN) 构建 于正常任务。 1. s0 码力 | 540 页 | 3.32 MB | 10 月前3Hello 算法 1.0.0b1 JavaScript版
。当然,堆排序一 般无需弹出元素,仅需每轮将堆顶元素交换至数组尾部并减小堆的长度即可。 ‧ 获取最大的 ? 个元素。这既是一道经典算法题目,也是一种常见应用,例如选取热度前 10 的新闻作为 微博热搜,选取前 10 销量的商品等。 8.2. 建堆操作 * 如果我们想要根据输入列表来生成一个堆,这样的操作被称为「建堆」。 8.2.1. 两种建堆方法 借助入堆方法实现 最直接地,考虑借 Undirected Graph」和「有向图 Directed Graph」。 ‧ 在无向图中,边表示两顶点之间“双向”的连接关系,例如微信或 QQ 中的“好友关系”; ‧ 在有向图中,边是有方向的,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上的 “关注”与“被关注”关系; 9. 图 hello‑algo.com 133 Figure 9‑2. 有向图与无向图0 码力 | 185 页 | 14.70 MB | 1 年前3Hello 算法 1.0.0b1 TypeScript 版
。当然,堆排序一 般无需弹出元素,仅需每轮将堆顶元素交换至数组尾部并减小堆的长度即可。 ‧ 获取最大的 ? 个元素。这既是一道经典算法题目,也是一种常见应用,例如选取热度前 10 的新闻作为 微博热搜,选取前 10 销量的商品等。 8.2. 建堆操作 * 如果我们想要根据输入列表来生成一个堆,这样的操作被称为「建堆」。 8.2.1. 两种建堆方法 借助入堆方法实现 最直接地,考虑借 Undirected Graph」和「有向图 Directed Graph」。 ‧ 在无向图中,边表示两顶点之间“双向”的连接关系,例如微信或 QQ 中的“好友关系”; ‧ 在有向图中,边是有方向的,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上的 “关注”与“被关注”关系; 9. 图 hello‑algo.com 133 Figure 9‑2. 有向图与无向图0 码力 | 186 页 | 14.71 MB | 1 年前3
共 30 条
- 1
- 2
- 3