日拱一卒 不期速成

循序渐进 一击中的


  • 首页

  • 分类

  • 标签

  • 搜索

五大常用算法之五:分支限界法

发表于 2019-06-02 | 更新于 2019-07-14 | 分类于 算法与数据结构 > 算法

一、基本描述

​ 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。

阅读全文 »

五大常用算法之四:回溯法

发表于 2019-06-02 | 更新于 2019-08-17 | 分类于 算法与数据结构 > 算法

1、概念

  回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

阅读全文 »

五大常用算法之三:贪心算法

发表于 2019-06-02 | 更新于 2019-08-28 | 分类于 算法与数据结构 > 算法

一、基本概念

  所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。

阅读全文 »

动态规划算法

发表于 2019-05-31 | 更新于 2019-07-22 | 分类于 算法与数据结构 > 算法

  Those who cannot remember the past are condemned to repeat it!——George Santayana

  那些记不清过去的人注定要重蹈覆辙!——乔治·桑塔耶拿

一、基本概念

  动态规划通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。

  动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储(在计算机科学中,记忆化是一种提高程序运行速度的优化技术。通过储存大计算量函数的返回值,当这个结果再次被需要时将其从缓存提取,而不用再次计算来节省计算时间。 记忆化是一种典型的时间存储平衡方案),以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。

阅读全文 »

五大常用算法之一:分治算法

发表于 2019-05-28 | 更新于 2019-07-14 | 分类于 算法与数据结构 > 算法

一、基本概念

在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……

阅读全文 »

Java并发编程入门与高并发面试(十五):线程死锁

发表于 2018-09-14 | 更新于 2019-05-29 | 分类于 高并发

摘要:如题。

阅读全文 »

Java并发编程入门与高并发面试(十四):线程池 Executor

发表于 2018-09-14 | 更新于 2019-05-29 | 分类于 高并发

摘要:本文介绍线程池的好处、类图和核心类——ThreadPoolExecutor,以及使用Executor创建线程池。

阅读全文 »

Java并发编程入门与高并发面试(十三):并发容器J.U.C -- 组件FutureTask、ForkJoin、BlockingQueue

发表于 2018-09-14 | 更新于 2019-05-29 | 分类于 高并发

摘要:本文介绍组件FutureTask、ForkJoin、BlockingQueue阻塞队列。

阅读全文 »

Java并发编程入门与高并发面试(十二):并发容器J.U.C -- AQS组件 锁:ReentrantLock、ReentrantReadWriteLock、StempedLock

发表于 2018-09-14 | 更新于 2019-05-29 | 分类于 高并发

摘要:本文介绍重入锁(ReentrantLock)、读写锁(ReentrantReadWriteLock)、票据锁(StempedLock)以及如何选择锁。

阅读全文 »

Java并发编程入门与高并发面试(十一):并发容器J.U.C -- AQS组件CountDownLatch、Semaphore、CyclicBarrier

发表于 2018-09-14 | 更新于 2019-05-29 | 分类于 高并发

摘要:本文介绍AQS。AQS全名:AbstractQueuedSynchronizer,是并发容器J.U.C(java.lang.concurrent)下locks包内的一个类。

阅读全文 »
1…141516
Li Wen

Li Wen

160 日志
19 分类
1 标签
© 2018 - 2021 Li Wen
访客数 人 总访问量 次
0%