- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 使用clion
觉得jetbrains的自动完成、代码规范警告做得不错,于是使用clion来写c++试下:1 安装cygwin,选择包的时候要选上Devl,这样才会有g++等开发工具;2 安装clion;3 新建工程,设置cygwin为其编译器;4 书写代码,运行。注意生成的exe是在cygwin环境下的,直接双击无法运行,需要cygwin的dll,可以在cygwin terminal中运行;...
2018-06-29 11:11:41 709
原创 力引导算法深入理解及其在d3.js中实现的源码分析
中学时最喜欢的学科是物理,大学误打误撞读了计算机。最近在做图计算的相关工作,图的可视化中有一个非常重要的算法:“力引导算法”,这个算法的原理居然就是最简单的粒子间的作用力,真是没想到我喜爱的两个东西在这里结合起来了,也有一个感慨:虽然我们的抽象理论已经这么发达的今天,仍然还是需要这种模拟物理世界的“蛮力”算法。 进入正题,我将按如下顺序带着疑问的由浅入深的讲解一下力引导算法(forc...
2018-06-26 11:29:56 4699 2
原创 neo4j使用cypher求多个结点两两间的最短路径
with [3105, 200025928, 200025929, 151286502, 135660351] as id_listmatch (v:vertices) where v.id in id_list with collect(v) as nodes unwind nodes as source unwind nodes as target with source,t...
2018-06-21 17:01:03 3905 3
原创 cypher求最短路径shortestPath后的条件
shortestPath后的条件(谓词)会先执行,并不是先求出最短路径后再判断。我们知道最短路径使用双向BFS实现,也就是在每一步遍历的时候都会去判断是否满足条件。创建一个测试图:CREATE (n1:Person {name:'1'})CREATE (n2:Person {name:'2'})CREATE (n3:Person {name:'3'})CREATE (n4:Person {n...
2018-06-20 16:38:04 6253
原创 非常易于理解的超简单图广度优先遍历、深度优先遍历算法python实现
#!/usr/bin/env python#coding=utf-8import networkx as nximport Queuedef bfs(adj, start): visited = set() q = Queue.Queue() q.put(start) while not q.empty(): u = q.get() print(...
2018-06-14 17:57:11 26135 12
原创 压力测试遇到的坑
今天对图谱系统做压力测试,没有用ab或loadrunner测试工具,自己写的python,因为会取一些不同的公司id。方法是先将所有待测试公司的id取出来,划分成N等份,然后起N个进程(因为python的多线程有GIL的限制),每个进程分别执行每一份中的数据,打印出每个请求的日志,最后汇总后在分析数据时发现一些问题,数据如下:进程112283进程211123进程322231上面的表格表示三...
2018-06-14 15:36:52 478
原创 代码重构:适当的使用短变量
一 适时的使用短变量这时我们使用像i、j、k这样的短命名变量反而会让代码理想清晰,比如多重for循环的下标或者是嵌套的lambda表达式的或者是迭代变量(如下),因为这已经约定俗成了,有这样一个背景知道。我把它们称之为“随手变量”意思就是随手拿来临时用一下,用完即扔。但注意这“随手变量”的作者域一定不能太大,否则到后面你就不知道它存放的是什么东西了,因为它的命名无法体现出来。打个乘法表:for(i...
2018-06-11 11:00:10 339
原创 networkx源码解析-无权图最短路径
g = nx.DiGraph()g.add_edges_from([(1, 2), (1, 3), (2, 4), (3, 4), (4, 1)])print(list(nx.all_shortest_paths(g, 1, 4)))
2018-06-08 15:32:02 2259 2
原创 networkx简介(下)
图的创建即构建Graph/DiGraph/MultiGraph/MultiDiGraph对象,三种方式:使用图产生器(Graph generators)产生一些典型的图如完全图、树状图,可以用这个很方便的构造一些模拟数据来进行算法的测试G=nx.balanced_tree(3,3)nx.draw(G)上面的代码创建了一个三层的树状图从其它文件中导入显式的添加结点和边图报告实在是不知道怎么翻译“G...
2018-06-08 10:47:54 1235
原创 networkx简介(上)
主要模块:从源代码就可以看出networkx的整个结构,主要是以下几部分:图对象类,其定义图的存储结构结构;创造图类,用来产生一些标准的经典的图,比如完全图、树状图等等;从其它数据源读取并构建图的辅助函数;图分析功能,里面包含了经常多的图算法,基本你叫得出名的都可以在里面找到;图绘制功能,只是提供了一个接口,具体由其它库实现比如graphviz;api设计原则:network大多数api都是一个全...
2018-06-07 17:50:36 2969
原创 安装networkx
安装pythonnetworkx使用纯python实现,因此需要先安装python的环境,我使用Anaconda因为它内置了很多机器学习算法常用的库,不用逐个去安装相当方便。去https://www.anaconda.com/download/下载,我选择了内置python 2.7的64 bit安装包,下载后默认选项安装直至完成,需要注意的是官方文档要求必须安装在没有空格及中文字符的路径上验证py...
2018-06-07 15:46:22 5387 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人