图的表示(建立)有两种方法:
①邻接矩阵:A(i,j)=1表示i,j存在一条边,空间复杂度O(n^2),稠密图
②邻接表:只记录存在的边,Vector+List的数据结构,稀疏图
邻接矩阵的图建立这里不做赘述,接下来我们看一下邻接表的图建立:
有向图
注意理解头插入节点的过程
int n,m;//n表示城镇个数,m表示道路条数
struct LinkNode//列表...
分类:
其他好文 时间:
2015-06-06 12:06:27
阅读次数:
496
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但...
分类:
其他好文 时间:
2015-06-04 13:33:44
阅读次数:
129
转载请注明出处:http://blog.csdn.net/ZhouLi_CSDN/article/details/46316855很久没写算法了,今天突然想写一下大数阶乘运算,花了一个多小时写了一个demo,具体算法时间空间复杂度优化并没有考虑,有兴趣可以自己研究一下。
什么都不用说了附上代码:
public class BigNumber { public static void main...
分类:
其他好文 时间:
2015-06-02 09:29:03
阅读次数:
180
//鸽巢排序//适用条件:所有取值的范围确定,并且在这个范围内个元素的出现频率较高。//算法描述:为取值范围内的各个可能取到的元素建巢用一维数组表示,巢中//巢中存放该元素出现的个数(通过遍历待排序数统计存入)。按照巢的//顺序和巢中元素个数列出该有序序列。//算法空..
分类:
编程语言 时间:
2015-05-31 18:38:01
阅读次数:
192
题目描述 区间覆盖问题,区间绝对位置并不重要,重要的是各个更新的区间段之间的相对位置关系。 举例而言,离散化将区间更新[1,100], [2, 50]更换为区间更新[1,4], [2,3]。 离散化可以将空间复杂度从O(L)降到O(N),进而也降低了更新和查询操作的复杂度。 用一个map来记录绝对位...
分类:
其他好文 时间:
2015-05-31 12:13:26
阅读次数:
97
解法参考了:http://blog.csdn.net/lanxu_yy/article/details/17261527思路:思路1是用NP的方式来罗列出所有的排列再找出第k个结果,这种方法的时间复杂度与空间复杂度比较高。思路2是研究排序结果的规律,例如取n是,结果可以分为n个组,第一组是第一个数字...
分类:
其他好文 时间:
2015-05-28 22:45:30
阅读次数:
226
//two_arg.cpp//题目:两个有序数组,求是否有共同元素(假设是两个升序数组)。//要求:时间复杂度:O(n),空间复杂度S(1)。//算法描述:一次遍历,两个指针分别开始分别指向两个数组。循环控制为是否到两个数组的末尾//每次循环比较两个指针指向的元素的大小,将小的指针后移,..
分类:
编程语言 时间:
2015-05-27 01:08:48
阅读次数:
182
//rplace.c//题目:假设存在字符串“qwertyubfghsdfjjhg”,并且该字符串具有足够大的空间编写算法将其中的空格字符用“%20”代替。//要求:时间复杂度:O(n),空间复杂度:S(1)。//算法分析://要实现时间复杂度为O(n),必须采用一重循环,并且循环控制由数组长度n控制,可以采..
分类:
编程语言 时间:
2015-05-26 16:35:33
阅读次数:
210
No.147 Insertion Sorted ListSort a linked list using insertion sort.单链表排序:使用插入排序时间复杂度是排序算法的O(n^2),空间复杂度是O(1)难度:无他,把思路理顺,注意细节,并测试一下;另外头结点的巧妙应用,int最小表示方...
分类:
其他好文 时间:
2015-05-25 22:13:42
阅读次数:
119
题目:给出两棵二叉查找树,有序输出所有元素,时间复杂度O(n),空间复杂度O(h),h为树的高度此题就是把两棵二叉查找树的中序遍历过程结合在一起。structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode(intx):val(x),left...
分类:
其他好文 时间:
2015-05-25 20:02:48
阅读次数:
100