小编Chr*_*ams的帖子

使用graphviz和neato防止重叠记录

我正在构建一个点文件来表示计算机硬件以及与网络交换机和显示器的物理连接.我通过点程序处理它看起来不错,但我认为我真的希望它由neato处理以创建一个更"自由形式"的图片,因为它开始出现问题.现在当我用neato运行我的大文件时,一切都重叠了.

我试图找出定义overlap属性的语法.下面是我的点文件的子集.

graph g {  
    node [shape=record,height=.1];  
    PC8[label="{{<GigE1>GigE1|<GigE2>GigE2}|{<name>PC8}|{<dvi1>dvi1|<dvi2>dvi2|<dvi3>dvi3|<dvi4>dvi4}}"];  
    PC9[label="{{<GigE1>GigE1|<GigE2>GigE2}|{<name>PC9}|{<dvi1>dvi1|<dvi2>dvi2|<dvi3>dvi3|<dvi4>dvi4}}"];
    C1[label = "{{<dvi1>dvi1}|{<name>C1}}"];  
    C2[label = "{{<dvi1>dvi1}|{<name>C2}}"];  
    C3[label = "{{<dvi1>dvi1}|{<name>C3}}"];  
    C4[label = "{{<dvi1>dvi1}|{<name>C4}}"];  
    D1[label = "{{<dvi1>dvi1}|{<name>D1}}"];  
    D2[label = "{{<dvi1>dvi1}|{<name>D2}}"];  
    "PC8":dvi1 -- "C1":dvi1;  
    "PC8":dvi2 -- "C2":dvi1;  
    "PC8":dvi3 -- "C3":dvi1;  
    "PC8":dvi4 -- "C4":dvi1;  
    "PC9":dvi1 -- "D1":dvi1;  
    "PC9":dvi2 -- "D2":dvi1;  
}
Run Code Online (Sandbox Code Playgroud)

dot graphviz neato

37
推荐指数
1
解决办法
1万
查看次数

对包含时间或距离的字符串进行排序

我已经为自定义字符串实现了排序算法,该字符串表示田径事件的时间或距离数据.以下是格式

'10:03.00 - 10分3秒或10英尺3英寸

排序的结果是,对于场事件,最长的投掷或跳跃将是第一个元素,而对于运行事件,最快的时间将是第一个.以下是我目前用于现场活动的代码.我没有发布,running_event_sort因为它与大于/小于交换的逻辑相同.虽然它有效,但它看起来过于复杂,需要重构.我愿意接受建议.任何帮助都会很棒.

event_participants.sort!{ |a, b| Participant.field_event_sort(a, b) }

class Participant
def self.field_event_sort(a, b)
  a_parts = a.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/)
  b_parts = b.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/)

  if(a_parts.empty? || b_parts.empty?)
    0
  elsif a_parts[0][0] == b_parts[0][0]
    if a_parts[0][1] == b_parts[0][1]
      if a_parts[0][2] > b_parts[0][2]
        -1
      elsif a_parts[0][2] < b_parts[0][2]
        1
      else
        0
      end
    elsif a_parts[0][1] > b_parts[0][1]
      -1
    else
      1
    end  
  elsif a_parts[0][0] > b_parts[0][0] 
    -1
  else
    1
  end
end
end
Run Code Online (Sandbox Code Playgroud)

ruby sorting algorithm refactoring

5
推荐指数
1
解决办法
331
查看次数

标签 统计

algorithm ×1

dot ×1

graphviz ×1

neato ×1

refactoring ×1

ruby ×1

sorting ×1