- 博客(48)
- 资源 (16)
- 收藏
- 关注
转载 五大常用算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计...
2019-12-31 16:59:22 128
转载 分治算法
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计算时间...
2019-12-31 16:26:50 129
原创 理解回溯算法
https://www.cxyxiaowu.com/7103.htmlhttps://blog.csdn.net/ffmpeg4976/article/details/45007439https://www.cnblogs.com/Kobe10/p/6361336.html
2019-12-31 15:33:16 141
转载 回溯法(backtracking) 题目整理
感谢原作者分享https://www.cnblogs.com/jiangchen/p/5930049.html回溯法概念:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一个既带有系统性又带有跳跃性的的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。...
2019-12-31 10:13:57 200
转载 数据结构重读 – 图的数组表示法(邻接矩阵)和DFS图遍历算法
可以用两个数组分别存储数据元素(顶点)、数据元素之间的关系(边或弧度)。顶点数组不说了,表示弧的数组称为“邻接矩阵”AdjMatrix。对于有向图:AdjMatrix[i][j]为0表示顶点i和顶点j之间无弧,1为i和j间有弧。对于无向图:AdjMatrix[i][j]同样是1表示有弧,0无弧。单AdjMatrix[i][j]为1则一定有AdjMatrix[j][i]为1,因为弧...
2019-12-30 20:43:52 450
转载 图的链式存储(邻接表)和BFS图遍历算法
数据结构重读 – 图的链式存储(邻接表)和BFS图遍历算法Leave a reply前面实现的邻接矩阵面临一个巨大的问题:对于稀疏矩阵,将耗费巨大的资源,而大部分都是0。现实中,绝大多数矩阵都是稀疏的!我们可以采用如下的邻接表方法存储。首先定义每个弧如下:ivex是在顶点在数组中的下标。next是一条链表,即某个顶点i的所有邻接结点的弧组成。// Arcstru...
2019-12-30 20:41:34 519
转载 图论相关算法(Kruscal、Prim 和 Dijkstra)-C语言
1. 最小生成树(Kruscal算法)基本思想:kruskal 算法总共选择 n-1 条边(共n个点),所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路则不可能形成一棵生成树。kruskal算法分 e 步,其中 e 是网络中边的数目。按耗费递增的顺序来考虑这 e 条边,每次考虑一条边。当考虑某条边时,若将其加入到已选边的集...
2019-12-30 20:32:23 321
转载 图的深度优先遍历(DFS)和广度优先遍历(BFS)---邻接表法
1.首先介绍下图的存储结构邻接矩阵的存储结构比较简单就不介绍了,主要讲下邻接表的存储。邻接表的处理方法是这样的:(1)图中顶点用一个一维数组存储,当然,顶点也可以用单链表来存储,不过,数组可以较容易的读取顶点的信息,更加方便。(2)图中每个顶点vivi的所有邻接点构成一个线性表,由于邻接点的个数不定,所以,用单链表存储,无向图称为顶点vivi的边表,有向图则称为顶点vivi...
2019-12-30 20:26:17 937
转载 机器学习以及计算机公开课汇总帖
系统自学计算机课程:https://www.jianshu.com/p/8f2646a825e8机器学习资料:https://www.jianshu.com/p/dc9020fd03b1计算机计算机基础 哈佛大学 CS50 https://www.edx.org/course/cs50s-introduction-computer-science-harvardx...
2019-12-30 19:48:13 252
转载 [数据结构]图基于邻接矩阵的BFS与DFS的C语言简单实现
上次给大家看了一下图的邻接矩阵的存储。接下来来看下图的广度优先搜索和深度优先搜索。为了更好的展示BFS和DFS,我把上次的图改了一个边,改成上图那样。好了,贴代码由于我们的图广度遍历时需要借助一个队列来实现所以我们需要用到一个之前实现的队列把下面这个代码写成queue.c,因为我们图的源文件需要对它导入#define MAXSIZE 100#define ElemType ...
2019-12-30 19:15:16 385
转载 C++中临时对象及返回值优化
什么是临时对象? C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行时确实生成了这样的对象.通常出现在以下两种情况:(1)为了使函数调用成功而进行隐式类型转换的时候。 传递某对象给一个函数,而其类型与函数的形参类型不同时,如果可以通过隐式转化的话可以使函数调用成功,那么此时会通过构造函数生成一个临时对象,当函数返回时临时对象...
2019-12-30 16:01:55 642
转载 看完,我不信你不会GIT!!!
转自简书 https://www.jianshu.com/p/92305d949c0e,感谢原作者一、常用命令介绍1.1 命令行介绍1.1.1 Git 全局设置$ git config --global user.name "knight"$ git config --global user.email "knight@dayuan.com"1.1.2 创建一个...
2019-12-30 15:28:42 324
转载 K-SUM 算法及子问题 2-SUM、3-SUM、4-SUM
转自:https://www.jianshu.com/p/22195855dc08,感谢原作者2-SUM 问题Question Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that eac...
2019-12-30 15:15:16 350
转载 Backtracking回溯法讲解
https://www.cis.upenn.edu/~matuszek/cit594-2012/Pages/backtracking.html回溯是啥用爬山来比喻回溯,好比从山脚下找一条爬上山顶的路,起初有好几条道可走,当选择一条道走到某处时,又有几条岔道可供选择,只能选择其中一条道往前走,若能这样子顺利爬上山顶则罢了,否则走到一条绝路上时或者这条路上有一坨屎,我们只好返回到最近的一个路...
2019-12-28 10:08:08 225
转载 2019年十七大最佳机器学习项目 |年度盘点
作者 |Derrick Mwiti译者 | Raku出品 | AI科技大本营(ID:rgznai100)为了筛选2019年一些令人惊叹的机器学习项目。根据reddit上机器学习类目中的内容,作者盘点了过去一年中最受欢迎的17个机器学习项目、研究论文、demo。希望你能在这个列表中获得一些鼓舞人心的、有教育意义的启发。· · ·1、小样本非监督图像...
2019-12-27 20:31:29 179
转载 【转】怎样才是一个基本水平的C++程序员?
转自知乎-作者:一定要瘦啊https://www.zhihu.com/question/51907924/answer/128509092泻药,我个人认为一个基本水平的C++程序员应该达到层级一,具体分层如下(按照推荐书单列表来),楼主勉强达到层级三的水平层级一:语法/语意(C++)[Lippman2000] Essential C++Essential C++,by Stanley ...
2019-12-27 20:23:38 233
转载 C++隐式转换构造函数与explicit关键字
explicit研究explicit是C++中的关键字,不是C语言中的。英文直译是“明确的”、“显式的”意思。出现这个关键字的原因,是在C++中有这样规定的基础上:当定义了只有一个参数的构造函数时,同时也定义了一种隐式的类型转换。先看类型转换。隐式转换的场景等于号与构造函数比如你有一个类的对象A:class A{public: A(int i) { ...
2019-12-27 19:54:15 277
转载 【算法】k-sum 问题
2sum问题这道题在剑指 offer 上面有,具体的链接为https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b?tpId=13&tqId=11195&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/...
2019-12-27 16:50:53 159
转载 LeetCode偶尔一题 —— 39. Combination Sum(回溯算法系列)
题目描述Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), find all unique combinations incandidateswhere the candidate numbers sums totarget.The same...
2019-12-27 16:32:29 99
转载 2019年,CSDN有哪些值得学习的专栏?
马上2020年了,回顾2019这一年,CSDN哪些专栏受到了大家的喜爱呢?我们结合专栏的关注量、浏览量、用户反馈等多个方面,精选出一些专栏,分期分类推荐给你!涉及各类领域,带你从入门进阶实战!目录一、Java二、Python三、C/C++四、AI五、OpenCV六、更多一、Java1、Java程序员从笨鸟到菜鸟(戳此学习)专栏学习人数:19...
2019-12-26 17:24:55 253
原创 C++临时对象
要理解临时对象,可能先需要搞清楚lvalue,rvalue的区别:每个表达式的结果都是lvalue或rvalue。lvalue指的是内存中持续存储数据的一个地址。而rvalue是临时存储的表达式结果。之所以称为lvalue,是因为所有产生lvalue的表达式都可以出现在赋值语句中等号的左边,如果表达式结果不是lvalue,则他是rvalue。(引用自深入理解visual c++入门经典Page...
2019-12-26 17:10:24 137
转载 C++强大背后
原文:https://www.cnblogs.com/miloyip/archive/2010/09/17/1828449.html在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过...
2019-12-26 16:59:08 431
转载 C++策略编写知识点 之 C++ 内存回收
在编写C++策略前有些 基础知识还是需要知道的,不求孔乙己式的精通, 最起码要知道这些规则。 以下为转载资料 C++内存对象大会战 如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这...
2019-12-26 11:24:12 204
转载 Sun Studio 12 Update 1:C++ 用户指南
前言第 1 部分 C++ 编译器第 1 章 C++ 编译器1.1 Sun Studio 12 Update 1 C++ 5.10 编译器的新特性和新功能1.2 x86 特殊注意事项1.3 针对 64 位平台进行编译1.4 二进制兼容验证1.5 标准一致性1.6 C++ 自述文件1.7 手册页1.8 本地语言支持第 2 章 使用 C++ 编译器2.1 入门...
2019-12-26 11:19:02 371
转载 与临时对象的斗争(上)(下)
感谢原作者https://www.cnblogs.com/daocaoren/archive/2011/07/19/2110309.htmlC++ 是一门以效率见长的语言(虽然近来越来越多的人“不齿”谈及效率,我深以为不然,在某一次的程序编写中不对效率锱铢必较并不意味意味着我们就不应该追求更多的更好的做法)。总之吧,相比起其它语言,程序员们在使 C++ 的时候会更加有意识地去避免没有效率的做...
2019-12-26 11:06:42 132
转载 关于C++中的临时对象问题
感谢原作者https://www.cnblogs.com/daocaoren/archive/2011/07/19/2110258.htmlC++中真正的临时对象是看不见的,它们不出现在你的源代码中,临时对象的产生在如下几个时刻:1.用构造函数作为隐式类型转换函数时,会创建临时对象。例:class Integer{...
2019-12-26 11:04:34 160
转载 Rvalue References: C++0x Features in VC10, Part 2
Rvalue References: C++0x Features in VC10, Part 2对应译文:http://www.cppblog.com/kesalin/archive/2009/05/28/85983.htmlVisual C++February 3rd, 2009Part 1of this series coveredlambdas,...
2019-12-26 09:47:45 208
转载 More Effective C++ 笔记
moreReference:http://www.yhc201.com/blog/2018/09/28/effective-cpp/基础议题(basics)条款1:仔细区别pointers和references使用引用,可以不做null判断 当需要考虑“不指向任何对象”的可能性时,或是考虑“在不同时间指向不同对象”的能力时,你就应该采用pointer,前一种情况可以将pointer设...
2019-12-25 22:19:39 264
转载 C++11 新特性:Lambda 表达式
或许,Lambda 表达式算得上是 C++ 11 新增特性中最激动人心的一个。这个全新的特性听起来很深奥,但却是很多其他语言早已提供(比如 C#)或者即将提供(比如 Java)的。简而言之,Lambda 表达式就是用于创建匿名函数的。GCC 4.5.x 和 Microsoft Visual Studio 早已提供了对 lambda 表达式的支持。在 GCC 4.7 中,默认是不开启 C++ 11 ...
2019-12-25 22:07:36 150
转载 C++11 - the new ISO C++ standard
http://www.stroustrup.com/C++11FAQ.htmlhttps://docs.microsoft.com/en-us/cpp/cpp/welcome-back-to-cpp-modern-cpp?redirectedfrom=MSDN&view=vs-2019https://github.com/changkun/modern-cpp-tutorial...
2019-12-25 19:53:48 1075
转载 右值引用与转移语义
新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它的主要目的有两个方面:消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。 能够更简洁明确地定义泛型函数。左值与右值的定义...
2019-12-25 19:45:17 95
转载 数据结构:二叉查找树
定义二叉查找树是一棵特殊的二叉树,它在二叉树的基础上附加了该性质:对于树中的每个结点X,它的左子树中所有关键字都小于或等于X的关键字,而它的右子树中所有关键字都大于或等于X的关键字。如下图所示:查找树的设计目标都是减少最坏情况下单次操作的时间,但是由于查找树的典型应用经常需要执行一系列的查找操作,因此此时更关心的性能指标是所有这些操作总共需要多少时间。对于此类应用,更好的目标就是降低...
2019-12-25 19:20:22 143
转载 【转】C++ 临时对象
转自:http://blog.leanote.com/post/gaunthan/不必要的对象以及临时对象通常会使我们所有的努力——包括程序的执行性能——都付之东流。从一个例子出发下面的代码你能找出几个不必要的临时对象?string FindAddr(list<Employee> emps, string name){for(list<Employee&...
2019-12-25 19:04:25 221
转载 【转发】C++ 并发编程(从C++11到C++17)
转自:https://paul.pub/cpp-concurrency/#id-%E5%B9%B6%E8%A1%8C%E7%AE%97%E6%B3%95自C++11标准以来,C++语言开始支持多线程模型。借助多线程模型,我们可以开发出更好的并发系统。本文以C++语言为例,讲解如何进行并发编程。并尽可能涉及C++11,C++14以及C++17中的主要内容。为什么要并发编程大型的软件项...
2019-12-25 17:12:18 512
转载 【转】C++11中值得关注的几大变化
转自赖勇浩(http://laiyonghao.com)声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequalityconnection.com/...
2019-12-25 16:54:51 147
转载 【转】C++11 中值得关注的几大变化(详解)
转自陈皓https://coolshell.cn/articles/5265.htmlhttp://www.hawkers.cc/upload/2017/11/%E7%8E%B0%E4%BB%A3C++%E7%89%B9%E6%80%A7%E4%BB%8B%E7%BB%8D.pdf源文章来自前C++标准委员会的Danny Kalev的The Biggest Changes in C...
2019-12-25 15:44:21 117
转载 【转】C++中的返回值优化
C++中的返回值优化在这边文章里用到了以下编译器和操作系统,大家请自行安装$ uname -arLinux debian 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) x86_64 GNU/Linux$ lsb_release -aNo LSB modules are available.Distributor ID...
2019-12-25 11:57:28 244
转载 【转】二叉树遍历/深度,递归和非递归
typedef struct BTreeNodeElement_t_ { void *data;} BTreeNodeElement_t; typedef struct BTreeNode_t_ { BTreeNodeElement_t *m_pElemt; struct BTreeNode_t_ *m_pLeft; struct BTreeNode_...
2019-12-23 19:28:01 110
转载 【转】C实现图的邻接矩阵存储和广度、深度优先遍历实例
转载:https://www.ctolib.com/topics-55254.html首先,图的遍历是指从图中的某一个顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问一次且仅访问一次。注意到树是一种特殊的图,所以树的遍历实际上也可以看作是一种特殊的图的遍历。图的遍历主要有两种算法:广度优先搜索(Breadth-First-Search)和深度优先搜索(Depth-First-Sear...
2019-12-23 19:04:11 298
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人