Algorithmic Thinking Week1
来源:互联网 发布:怎么上架淘宝宝贝 编辑:程序博客网 时间:2024/05/21 00:46
Week1 主要将了graph,比较简单
下面是project 的代码, 注意图的表示方法
EX_GRAPH0 = {0:set([1,2]), 1:set([]), 2:set([])}EX_GRAPH1 = {0:set([1,4,5]), 1:set([2,6]), 2:set([3]), 3:set([0]), 4:set([1]), 5:set([2]), 6:set([])}EX_GRAPH2 = {0:set([1,4,5]), 1:set([2,6]), 2:set([3,7]), 3:set([7]), 4:set([1]), 5:set([2]), 6:set([]), 7:set([3]), 8:set([1,2]), 9:set([0,4,5,6,7,3])}def make_complete_graph(num_nodes): ''' establish complete graph ''' if num_nodes == 1: return {0:set([])} graphs = {} allnodes = [dummy_i for dummy_i in range(num_nodes)] for self_node in range(num_nodes): temp = allnodes[:] temp.remove(temp.index(self_node)) graphs[self_node] = set(temp) return graphsdef compute_in_degrees(digraph): ''' compute indegree ''' if digraph.keys()==[]: return {} indegrees = {} for node in digraph.keys(): indegrees[node] = 0 allvalues = [list(item) for item in digraph.values()] allvalues = reduce(lambda x,y:x+y,allvalues) for innode in allvalues: indegrees[innode] += 1 return indegreesdef in_degree_distribution(digraph): ''' compute indegreee distribution ''' indegrees = compute_in_degrees(digraph) final = dict.fromkeys(list(set(indegrees.values())),0) for indegree in indegrees.values(): final[indegree] += 1 return final
0 0
- Algorithmic Thinking Week1
- week1
- week1
- week1
- week1
- week1
- week1
- Algorithmic Crush
- KMA algorithmic techniques
- Algorithmic Toolbox(1)
- C++ HackerRank|Algorithmic Crush
- thinking
- Thinking
- thinking
- thinking
- thinking
- Thinking
- THINKING
- Leetcode-Combine Sum II
- Zero+
- C/C++中的寄存器变量
- Android中RelativeLayout各个属性的含义
- 百度推送REST API 签名组织方法
- Algorithmic Thinking Week1
- Git分支管理策略
- hdu 3074 Multiply game(线段树)
- 2012 Asia JinHua Regional Contest
- BZOJ 1047: [HAOI2007]理想的正方形
- LeetCode: Unique Binary Search Trees II
- 脚本语言
- CSS层叠顺序以及选择器特殊性计算
- 【算法】【树】最近公共祖先LCA——Tarjan算法