电路布线问题的动态规划实现(java)

电路布线问题的动态规划实现(java)一 问题分析 参考该博主 电路布线问题 何智鹏的博客 CSDN 博客 电路布线问题 问题描述 在一块电路板的上 下两端分别有 n 个接线柱 根据电路设计 要求用导线 i i 将上端接线柱 i 与下端接线柱 i 相连 如下图 其中 i 1 i n 是 1 2

大家好,我是讯享网,很高兴认识大家。

一,问题分析

参考该博主:

电路布线问题_何智鹏的博客-CSDN博客_电路布线问题问题描述:在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i)) 将上端接线柱i与下端接线柱π(i)相连,如下图。其中,π(i),1≤ i ≤n,是{1,2,…,n}的一个排列。导线(I, π(i))称为该电路板上的第i条连线。对于任何1 ≤ i ≤ j ≤n,第i条连线和第j条连线相交的充要条件是π(i)> π(j).π(i)={8,7,4,2,5,1,9,3,10,6}在制作电路板时,要求将这n条连线分布到若干绝缘层上。换句话说,这个问题是要确定将哪些连线
讯享网https://blog.csdn.net/weixin_/article/details/

列出普通解法的伪代码及时间复杂度的分析

二,代码部分

1,普通方法,较简单

public class circuit_wiring{ public int circuit(int[] pai,int n,int max){ for(int i=0;i<n;i++){ int count=1; int t=pai[i]; for(int j=i+1;j<n;j++){ if(pai[j]>t){ count++; t=pai[j]; if(max<count){ max=count; } } } } return max; } public static void main(String[] args) { int max=0; circuit_wiring mod=new circuit_wiring(); int[] pai={8,7,4,2,5,1,9,3,10,6}; System.out.println("对应的接线柱排列为:"); for(int i=0;i<pai.length;i++){ System.out.print(pai[i]+" "); } System.out.println(); System.out.println("电路布线的最大不相交连线数目为:"+mod.circuit(pai,pai.length,max)); } }

讯享网

2,动态规划方法

参考该博主

动态规划案例-电路布线(含表格填写等超详细,纯人话讲解)_小王在努力的博客-CSDN博客_电路布线动态规划c语言https://blog.csdn.net/vangoudan/article/details/?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-9.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-9.pc_relevant_antiscanv2&utm_relevant_index=15

小讯
上一篇 2025-01-14 07:39
下一篇 2025-02-25 10:00

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/13086.html