目录

反向索引

傅里叶变换

线性规划


在二叉查找树中查找节点时,平均运行时间为
O(log n),但在最糟的情况下所需时间为O(n);而在有序数组中查找时,即便是在最糟情况下所
需的时间也只有O(log n),因此你可能认为有序数组比二叉查找树更佳。然而,二叉查找树的插
入和删除操作的速度要快得多。

二叉查找树也存在一些缺点,例如,不能随机访问,就像不能这么说:“给我第五个元素。”
在二叉查找树处于平衡状态时,平均访问时间也为O(log n)。假设二叉查找树像下面这样处于不
平衡状态。

注意,这棵树是向右倾斜的,因此性能不佳。也有一些处于平衡状态的特殊二叉查找树,如红黑树。

反向索引

傅里叶变换

绝妙、优雅且应用广泛的算法少之又少,傅里叶变换算是一个。

如果看了此文你还不懂傅里叶变换,那就过来

Better Explained(https://betterexplained.com/)是一个杰出的网站,致力于以通俗易懂的语言阐释数学,它就傅里叶变换做了一个绝佳的比喻:给它一杯冰沙,它能告诉你其中包含哪些成分①。换言之,给定一首歌曲,傅里叶变换能够将其中的各种频率分离出来。

这种理念虽然简单,应用却极其广泛。例如,如果能够将歌曲分解为不同的频率,就可强化
你关心的部分,如强化低音并隐藏高音。傅里叶变换非常适合用于处理信号,可使用它来压缩音
乐。为此,首先需要将音频文件分解为音符。傅里叶变换能够准确地指出各个音符对整个歌曲的
贡献,让你能够将不重要的音符删除。这就是MP3格式的工作原理!

数字信号并非只有音乐一种类型。 JPG也是一种压缩格式,也采用了刚才说的工作原理。

线性规划

最好的东西留到最后介绍。线性规划是我知道的最酷的算法之一。

线性规划用于在给定约束条件下最大限度地改善指定的指标。例如,假设你所在的公司生产
两种产品:衬衫和手提袋。衬衫每件利润2美元,需要消耗1米布料和5粒扣子;手提袋每个利润3
美元,需要消耗2米布料和2粒扣子。你有11米布料和20粒扣子,为最大限度地提高利润,该生产
多少件衬衫、多少个手提袋呢?

在这个例子中,目标是利润最大化,而约束条件是拥有的原材料数量。

再举一个例子。你是个政客,要尽可能多地获得支持票。你经过研究发现,平均而言,对于
每张支持票,在旧金山需要付出1小时的劳动(宣传、研究等)和2美元的开销,而在芝加哥需要
付出1.5小时的劳动和1美元的开销。在旧金山和芝加哥,你至少需要分别获得500和300张支持票。
你有50天的时间,总预算为1500美元。请问你最多可从这两个地方获得多少支持票?

这里的目标是支持票数最大化,而约束条件是时间和预算。

你可能在想,本书花了很大的篇幅讨论最优化,这与线性规划有何关系?所有的图算法都可
使用线性规划来实现。线性规划是一个宽泛得多的框架,图问题只是其中的一个子集。但愿你听
到这一点后心潮澎湃!

《图解算法》第11章之 接下来如何做相关推荐

  1. 【Code Pratice】—— 《图解算法数据结构 ~ 第一章》

    简述 本文主要记录了学习<图解算法数据结构>一书中"数据结构"章节所做练习题的笔记,记录其中的思路以及碰到的问题等.因为学习的这本书是在leetcode上的,但是感觉l ...

  2. 机器学习实战---读书笔记: 第11章 使用Apriori算法进行关联分析---2---从频繁项集中挖掘关联规则

    #!/usr/bin/env python # encoding: utf-8''' <<机器学习实战>> 读书笔记 第11章 使用Apriori算法进行关联分析---从频繁项 ...

  3. C++ Primer 第11章 泛型算法 学习总结

    文章目录 11.2 算法 11.2.1 只读算法 **1.find函数** **2.accumulate函数** **3.find_first_of 函数** 11.2.2 写容器元素算法 1.fil ...

  4. 第 11 章 树结构实际应用

    第 11 章 树结构实际应用 1.堆排序 1.1.堆排序基本介绍 堆排序是利用堆这种数据结构而设计的一种排序算法, 堆排序是一种选择排序, 它的最坏, 最好, 平均时间复杂度均为 O(nlogn), ...

  5. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第11章-基于邻居相关状态的多智能体非合作行为检测与隔离

    第10章 回到目录 无 代码地址:https://github.com/Jichao-Zhao/MAS_CooperativeClusterMotionControl 第11章-基于邻居相关状态的多智 ...

  6. 【控制】《多无人机协同控制技术》周伟老师-第11章-多无人机协同航迹规划方法

    第10章 回到目录 第12章 第11章-多无人机协同航迹规划方法 11.1 航迹规划常用算法 11.2 改进动态规划算法的航迹规划 11.2.1 路径节点生成 11.2.2 最短路径生成 11.2.3 ...

  7. 《面向对象程序设计》第11章在线测试

    <面向对象程序设计>第11章在线测试  <面向对象程序设计>第11章在线测试 剩余时间: 59:56  答题须知:1.本卷满分20分.            2.答完题后,请一 ...

  8. 复现经典:《统计学习方法》​第 11 章 条件随机场

    本文是李航老师的<统计学习方法>[1]一书的代码复现. 作者:黄海广[2] 备注:代码都可以在github[3]中下载. 我将陆续将代码发布在公众号"机器学习初学者", ...

  9. 斗地主AI算法——第四章の权值定义

    第一章业务逻辑结尾部分我提到了权值的计算方法: ①每个单牌都有一个基础价值②组合牌型的整体价值与这个基础价值有关,但显然计算规则不完全一样.③整手牌可以分成若干个组合牌,但分法不唯一. 当时,我说了① ...

  10. MySQL性能调优与架构设计——第11章 常用存储引擎优化

    第11章 常用存储引擎优化 前言: MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.每一种存储引擎都有各自的特长,也都存在一定的短处. ...

最新文章

  1. java异常处理机制详解
  2. RGBA和ARGB的区别
  3. WD1600AAJS AAKS 固件 数据恢复
  4. 从零入门 Serverless | 架构的演进
  5. Ruby on Rails 通过代理远程安装
  6. sql查询结果集根据指定条件排序的方法
  7. 琥珀ai_琥珀项目:Java的未来暴露
  8. java界面编辑教程_java程序设计基础教程第六章图形用户界面编辑.docx
  9. ActionScript 3.0 API 中的 Video 类
  10. 关于 Object.prototype.toString.call() 方法
  11. mysqldump+系统计划任务定时备份MySql数据
  12. 入门SpringBoot集成常用框架以及常见处理方式(括宽知识面)
  13. 计算机电子电路原理图,简单电路图入门-电路原理图入门知识图解
  14. win7计算机窗口无法最小化,Windows7系统任务栏不显示最小化窗口的解决方法
  15. apt-get autoremove remove 新手收割者
  16. 单页面网站优化技巧有哪些?
  17. 北大先修课 计算机,北大先修课
  18. 友情链接SEO工具检测不出来
  19. 阿里巴巴的业务范畴/文化和价值观
  20. google浏览器字体模糊问题(类似分辨率问题)解决办法

热门文章

  1. html用于信息展示的表格源码,Html表格
  2. c++类之间的基本关系
  3. android app入口函数,Android App程序运行过程 ActivityThread.main()------详解系列(一)...
  4. oracle压缩子分压,混合列压缩(HCC)在OLAP及OLTP场景中的测试
  5. java实现续打功能_银行存折套打续打功能 -- 报表如何记录上次打印的位置
  6. 微型计算机中硬盘工作时 应注意避免,1硬盘工作时应特别注意避免(B)
  7. Codeforces 437D The Child and Zoo(贪心+并查集)
  8. ColorBlinder(我是色盲)
  9. 电大与152双向数据同步的方案
  10. List集合操作二:排序