算法学习从此开始,主要参考书籍为《计算机算法设计与分析》,为了同时恢复Java的基础,将以java语言并采用尽量简单的代码描述书中的算法,至于课后习题,因为有相关配套的参考答案的书籍已出版,暂不关注!
第一段代码实践了递归的算法,输出一个集合的全排列:
public class Permutations{
static void swap(int L[],int i,int k)
{
int temp=L[i];
L[i]=L[k];
L[k]=temp;
}
static void perm(int L[],int k, int m)
{
if(k>m&&(L[m]>L[0]))
{
for(int i=0;i<=m;i++)
System.out.print(L[i]);
System.out.println();
}
else
for(int i=k;i<=m;i++)
{
swap(L,k,i);
perm(L,k+1,m);
swap(L,k,i);
}
}
public static void main(String args[])
{
int testL[]={1,2,3,4,5};
perm(testL,1,4);
}
}