
算法
CodeInfo_
站在巨人的肩膀上看世界
展开
-
算法(一):二分查找法
算法基础:一、大O表示法:指示算法的速度有多快,用于指出随数量的增大,算法的所需步骤增加的速度,常见的大O运行时间(时间复杂度):O(1)表示常数阶时间复杂度O(log n),也叫对数时间复杂度,这样的算法包括二分查找。O(n),也叫线性阶时间复杂度,这样的算法包括简单查找。O(n * log n), (n*对数复杂度)O(n^2),平方阶时间复杂度O(n!),阶乘阶时间复杂...原创 2018-07-23 13:23:48 · 12284 阅读 · 1 评论 -
算法(二):分而治之
算法篇的文章主要为对”图解算法”一书的记录与总结分而治之 分而治之(divide and conquer, D&C),一种著名的 **递归式** 解决问题的方法.快速排序中便使用到了该方法;D&C的工作原理: - 找出简单的基线条件; - 确定如何缩小问题的规模,使其符合基线条件分而治之的例子java实现 /** *...原创 2018-07-24 18:39:06 · 3418 阅读 · 0 评论 -
算法(三):图解广度优先搜索算法
算法(三):图解广度优先搜索算法算法简介广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS; BFS是用于图的查找算法(要求能用图表示出问题的关联性)。BFS可用于解决2类问题:从A出发是否存在到达B的路径; 从A出发到达B的最短路径(这个应该叫最少步骤合理);其思路为从图上一个节点出发,访问先访问其直接相连的子节...原创 2018-08-03 22:26:09 · 42480 阅读 · 5 评论 -
算法(四):图解狄克斯特拉算法
算法简介狄克斯特拉算法(Dijkstra )用于计算出不存在非负权重的情况下,起点到各个节点的最短距离可用于解决2类问题:从A出发是否存在到达B的路径; 从A出发到达B的最短路径(时间最少、或者路径最少等),事实上最后计算完成后,已经得到了A到各个节点的最短路径了;其思路为:(1) 找出“最便宜”的节点,即可在最短时间内到达的节点。(2) 更新该节点对应的邻居节点的开销,其...原创 2018-08-12 17:54:40 · 8253 阅读 · 0 评论 -
算法(五):图解贝尔曼-福特算法
算法简介贝尔曼-福特算法(Bellman–Ford algorithm )用于计算出起点到各个节点的最短距离,支持存在负权重的情况 它的原理是对图进行最多V-1次松弛操作,得到所有可能的最短路径。其优于迪科斯彻算法的方面是边的权值可以为负数、实现简单,缺点是时间复杂度过高,高达O(VE)。但算法可以进行若干种优化,提高了效率。 Bellman Ford算法每次对所有的边进行松弛...原创 2018-08-18 19:22:40 · 36193 阅读 · 9 评论 -
算法(六):图解贪婪算法
算法简介参考:https://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741375.html贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。贪婪算法所得到的结果往往不是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。...原创 2018-08-26 13:01:51 · 82299 阅读 · 9 评论 -
算法(七):图解动态规划
算法简介动态规划,将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法与贪婪算法区别 2者都是将大问题划分为规模更小的子问题 动态规划实质是分治法以及解决冗余,将各个子问题的解保存下来,让后面再次遇到的时候可以直接引用,避免重复计算,动态规划的显著特征之一,会有大量的子问题重复,可以直接使用前面的解 贪心算法的每一次操作都对结果产生直接影响(处理问题的范围...原创 2018-09-24 17:37:10 · 2740 阅读 · 0 评论 -
算法(八):图解KNN算法
K最相邻算法(K-NearestNeighbor Classification Algorithm,KNN)是数据挖掘分类技术中最简单的方法之一,所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻居来代表。KNN算法的核心思想是如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策...原创 2018-11-24 23:32:01 · 3835 阅读 · 0 评论