一,问题分析
参考该博主:
电路布线问题_何智鹏的博客-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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/13086.html