
算法思想
Elylicery
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法思想(二)——排序基础
使用代码编写测试用例 使用rand 生成随机数,上限是rangeR,下线是rangeLarr[i]=rand()%(rangeR-rangeL+1)+rangeL; //生成有n个元素的随机数组,每个元素的随机范围为[rangel,rangeR] int* generateRamdomArray(int n,int rangeL,int rangeR) { assert(rangeL&lt...原创 2019-01-25 16:14:42 · 327 阅读 · 0 评论 -
算法思想(三)—— 高级排序算法
写在前面: 视频:慕课网-学习算法思想,修炼编程内功 代码:Play-with-Algorithms/tree/master/03-Sorting-Advance/Course 归并排序 //将arr[l...mid]和arr[mid+1...r]两部分进行归并 template<typename T> void __merge(T arr[],int l,int mid,int原创 2019-01-27 21:07:56 · 221 阅读 · 0 评论 -
算法思想(四)—— 堆和堆排序
为什么使用堆? 优先队列 普通队列:先进先出;后进后出 优先队列:出队顺序和入队顺序无关;和优先级相关 为什么使用优先队列? 对于动态问题 例如操作系统执行任务,每个任务都有优先级,动态选择优先级最高的任务执行,使用优先队列。 比如不同用户对同一界面的请求,回应请求优先队列。 或者游戏中只能选择角色攻击敌人的顺序,角色的攻击范围是一定的,该角色由电脑控制选择敌人攻击,使用优先队列。 对于...原创 2019-02-02 13:41:06 · 458 阅读 · 0 评论 -
算法思想(五)——二叉搜索树
二分查找法 Binary Search 对于有序数列,才能使用二分查找法(排序的作用)(logn级别复杂度) 使用递归方式实现二分查找法 递归实现通常思维起来更容易,但在性能上会有略差。 ...原创 2019-02-24 23:46:39 · 673 阅读 · 0 评论 -
算法思想(六)——并查集
6.1 并查集基础 一种很不一样的树形结构 作用 : 回答连接问题 连接问题:网络中节点间的连接状态:网络是个抽象的概念:用户之间形成的网络 数学中的集合类实现 连接问题和路径问题:连接问题比路径问题要回答的问题 6.2 Quick Find 对于一组数据,主要支持两个操作 union(p,q) find(p) 用来回答一个问题 isConnected(p,q) 并查集的基本数据表示:数组...原创 2019-05-15 16:30:27 · 255 阅读 · 0 评论 -
算法思想(七)—— 图论基础
7.1 图论基础 节点 边 应用:交通运输,社交网络,互联网,工作安排,脑区活动,程序状态执行 图的分类:有向图,无向图 后文讲解以无向图为主 无向图是一种特殊的有向图(两个节点相互指向),有向图由于其不对称型,演变出更多复杂的问题和专门针对有向图的算法(暂不涉及) 图的分类:无权图,有权图 图的连通性 简单图:自环边,平行边。 7.2 图的表示 邻接矩阵:适合表示稠密图(D...原创 2019-05-27 17:25:51 · 393 阅读 · 0 评论 -
算法思想(八)—— 最小生成树
8-1 有权图 使用邻接矩阵表示有权图 为保证二者有同一接口,在邻接矩阵中也存储为edge类型 使用邻接表,每一个结点存储两个信息:相邻接点+权值(封装成一个类edge) 稠密图 #include<iostream> #include<vector> #include<cassert> #include"Edge.h" using namespace s...原创 2019-06-19 15:00:54 · 750 阅读 · 0 评论 -
算法思想(九)—— 最短路径
9-1 最短路径问题和松弛操作 图 例如:路径规划,工作任务规划。 之前说讲过的广度优先遍历: 图 其实求出的是一个点(起点)到其他顶点的最短路径问题,通过BFS,得到了一棵树,这棵树就叫做最短路径树(shortest path tree):即所有顶点距离起始顶点的总权值最小(注意和上一章所讲的最小生成树的区别) 求得这个最短路径树的答案,其实就是解决了一个**单源最短路径(Single So...原创 2019-06-24 16:47:18 · 1172 阅读 · 0 评论 -
算法思想(十)—— 总结
原创 2019-06-24 16:58:14 · 153 阅读 · 0 评论