知识卡片

高水位线算法求最大值

专业/工作 · 48

内容

要从一组数据中找出最大值,不需要先排序或整体比较,只需维护一个”当前已知最大值”的变量,遍历时每遇到一个比它更大的新值就更新它,遍历结束时这个变量自然就是全局最大值——这个思路被称为”高水位线”,取自潮水退去后最高处留下的水痕标记。这个算法的价值在于只需一次遍历、O(n)时间和O(1)额外空间,且天然支持流式数据(数据边到达边处理,无需等全部数据到齐)。

参考来源

《Perl语言入门(第五版)》第4章《子程序》