
算法
陈龙|JUST DO IT.
https://github.com/RunningSnail1997
展开
-
如何删除github的项目或文件夹
参考资料: 删除项目中的某一个文件夹 https://blog.youkuaiyun.com/wudinaniya/article/details/77508229 删除整个项目 https://blog.youkuaiyun.com/qq_33465421/article/details/52661378原创 2018-12-03 12:07:00 · 293 阅读 · 0 评论 -
如何看懂程序
读程序的方法: 1. 每遇到if就考虑此时程序的两种情况都是什么,不要考虑了一种情况就继续看后面的程序。 2. 为每条语句写注释,一次看不懂,看两次,直到看懂为止。第一个文件先不要写注释,用来复制。将代码复制到一个新的文件里,再写注释,没看懂,在复制一份代码,再写一遍,直到看懂为止。 ...原创 2018-12-01 19:47:12 · 2204 阅读 · 0 评论 -
BFS广度优先搜索算法详解与实现
BFS广度优先搜索算法详解与实现 概括:广度优先是优先搜索所有相邻的节点,再访问所有相邻节点的邻节点。 算法描述:从图的某一结点出发,首先依次访问该结点对的所有邻接顶点,再按这些顶点被访问的先后次序依次访问与它们相邻接的所有未被访问的顶点,重复此过程,直至所有顶点均被访问为止。 预备知识 队列详解及其实现: https://blog.youkuaiyun.com/ASCIIdragon/artic...原创 2018-12-01 20:01:16 · 1157 阅读 · 0 评论 -
DFS深度优先遍历算法详解与实现
DFS深度优先遍历算法详解与实现 概括:深度优先是沿着一条路一直走到底,然后进行回溯 该算法是基于图的邻接表存储实现的 图的邻接表存储方式 注意,邻接表中边表节点中存储的值是该节点在数组中的索引值,而顶点表节点存储的是数据。 更多关于邻接表内容: https://blog.youkuaiyun.com/ASCIIdragon/article/details/84635236 使用一个一...原创 2018-12-01 15:26:21 · 6121 阅读 · 0 评论 -
二分查找(binary search)算法讲解与实现
例:在数组a = [46,30,82,90,56,17,95]中寻找 x = 17 start = 0,end = length(a) - 1,mid = (start + end)/2 如果30大于a[mid] = 90,由于我们是按递增顺序存储的,所以,30一定在mid的后面,则将start = mid+1; 如果30小于a[mid] = 90,则30一定在mid的前面,所以,将en...原创 2018-11-27 10:28:01 · 675 阅读 · 0 评论 -
基于邻接表存储的图的深度优先遍历和广度优先遍历
邻接表实现代码:https://blog.youkuaiyun.com/ASCIIdragon/article/details/84635236 c语言实现代码 /** 邻接表深度优先遍历和广度优先遍历 **/ #include<stdio.h> #include<stdlib.h> #define MaxVex 255 #define TRUE 1 #defin...原创 2018-11-26 20:58:35 · 10117 阅读 · 2 评论 -
时间复杂度
看了网上有一些人提问关于时间复杂度的问题,下面有一些人回答,发现很多回答并不严谨,甚至是错误的,所以,想自己写一篇关于时间复杂度的文章,给大家说说,我对时间复杂度的理解。 对于很多刚接触的时间复杂度这个概念的同学来说,我觉得很容易将时间复杂度与程序运行时间搞混,认为算法的时间复杂度相同则两个算法运行的时间就相同,其实不然,两个算法的时间复杂度相同只是说明,当问题规模n趋于无穷时,两算法的时间增长...原创 2017-10-04 21:32:07 · 740 阅读 · 0 评论 -
堆排序(heap sort)算法讲解与实现
堆排序(heap sort)算法讲解 开始时,堆不可能是这个样子,因为,将数组转化为树,是有规则的,必须把左边填满才能再填右边。 待排序数组:a = [46,30,82,90,56,17,95],组成一个二叉树,将46,30,82,90,56,17,95这几个数字从存储在数组结构,转变到二叉树及结构,是通过为一些数组下标赋予一些新的关系。比如,在数组中索引0和2的关系是,2是0的后两个元素...原创 2018-11-13 15:35:55 · 1462 阅读 · 0 评论 -
归并排序(merge sort)算法详解与实现
归并排序(merge sort ) 分裂过程图解: 当i和j重合时,停止分裂。 归并过程图解: c++代码实现如下 #include "stdafx.h"//dev下把这句话去掉,vs下保留 #include<iostream> using namespace std; void Merge(int* a, int l, int m, int r); void Me...原创 2018-11-13 15:34:48 · 1910 阅读 · 0 评论