算法思想
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 · 287 阅读 · 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 · 190 阅读 · 0 评论 -
算法思想(四)—— 堆和堆排序
为什么使用堆?优先队列普通队列:先进先出;后进后出优先队列:出队顺序和入队顺序无关;和优先级相关为什么使用优先队列?对于动态问题例如操作系统执行任务,每个任务都有优先级,动态选择优先级最高的任务执行,使用优先队列。比如不同用户对同一界面的请求,回应请求优先队列。或者游戏中只能选择角色攻击敌人的顺序,角色的攻击范围是一定的,该角色由电脑控制选择敌人攻击,使用优先队列。对于...原创 2019-02-02 13:41:06 · 420 阅读 · 0 评论 -
算法思想(五)——二叉搜索树
二分查找法 Binary Search对于有序数列,才能使用二分查找法(排序的作用)(logn级别复杂度)使用递归方式实现二分查找法递归实现通常思维起来更容易,但在性能上会有略差。...原创 2019-02-24 23:46:39 · 622 阅读 · 0 评论 -
算法思想(六)——并查集
6.1 并查集基础一种很不一样的树形结构作用 : 回答连接问题连接问题:网络中节点间的连接状态:网络是个抽象的概念:用户之间形成的网络数学中的集合类实现连接问题和路径问题:连接问题比路径问题要回答的问题6.2 Quick Find对于一组数据,主要支持两个操作union(p,q)find(p)用来回答一个问题isConnected(p,q)并查集的基本数据表示:数组...原创 2019-05-15 16:30:27 · 219 阅读 · 0 评论 -
算法思想(七)—— 图论基础
7.1 图论基础节点边应用:交通运输,社交网络,互联网,工作安排,脑区活动,程序状态执行图的分类:有向图,无向图后文讲解以无向图为主无向图是一种特殊的有向图(两个节点相互指向),有向图由于其不对称型,演变出更多复杂的问题和专门针对有向图的算法(暂不涉及)图的分类:无权图,有权图图的连通性简单图:自环边,平行边。7.2 图的表示邻接矩阵:适合表示稠密图(D...原创 2019-05-27 17:25:51 · 346 阅读 · 0 评论 -
算法思想(八)—— 最小生成树
8-1 有权图使用邻接矩阵表示有权图为保证二者有同一接口,在邻接矩阵中也存储为edge类型使用邻接表,每一个结点存储两个信息:相邻接点+权值(封装成一个类edge)稠密图#include<iostream>#include<vector>#include<cassert>#include"Edge.h"using namespace s...原创 2019-06-19 15:00:54 · 656 阅读 · 0 评论 -
算法思想(九)—— 最短路径
9-1 最短路径问题和松弛操作图例如:路径规划,工作任务规划。之前说讲过的广度优先遍历:图其实求出的是一个点(起点)到其他顶点的最短路径问题,通过BFS,得到了一棵树,这棵树就叫做最短路径树(shortest path tree):即所有顶点距离起始顶点的总权值最小(注意和上一章所讲的最小生成树的区别)求得这个最短路径树的答案,其实就是解决了一个**单源最短路径(Single So...原创 2019-06-24 16:47:18 · 1088 阅读 · 0 评论 -
算法思想(十)—— 总结
原创 2019-06-24 16:58:14 · 125 阅读 · 0 评论