如何实现这个算法?(算法设计与分析 书中的题)
题目
如何实现这个算法?(算法设计与分析 书中的题)
设R={r1,r2,...,rn}(r后面是下标)是要进行排列的n个元素,Ri=R-{ri}.集合X中元素的全排列记为perm(X).(ri)perm(X)表示在全排列perm(x)的每一个排列前加上前缀ri得到的排列.R的全排列可归纳定义如下:
当n=1时,perm(R)=(r),其中r是集合中唯一的元素;
当n>1时,perm(R)由(r1)perm(R1),(r2)perm(R2),...(rn)perm(Rn)构成.
由此递归定义,可设计产生perm(R)的递归算法如下:
public static int perm(Object[]list,int k,int m)
{//产生list[k:m]的所有排列
if(k==m)
{//只剩一个元素
for(int i=0;i
答案
不太懂算法,不过swap在程序里通常指数组或集合中两个元素的交换
就像这样:
public static void swap(Object[] list, int m, int n) {
Object temp = list[m];
list[m] = list[n];
lsit[n] = temp;
}
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点