ACM总结(全排列)

9月27号ACM总结

这个星期我学习了小黑书上递归全排列,BFS与DFS的有关内容,感觉自己的进度有点慢,希望可以早日结束黑书的内容。
在java老师布置的作业中我运用了全排列,因为java中没有(next_permutation)函数。

public static int num=0;
	public static void swap(int[] p,int x,int y)
	{int temp;
	temp=p[x];
	p[x]=p[y];
	p[y]=temp;
	}
	public	static void Perm(int [] l,int begin,int end,int q)
	{int i;
	if(begin==end)//**若为m个数中排n个数,此处end应为n的值**
	{for(int r=0;r<q;r++)
	{System.out.print(l[r]);}
	System.out.println();
		num++;
	}
	else
	{for(i=begin;i<=end;i++)
	{
	swap(l,i,begin);
	Perm(l,begin+1,end,q);
	swap(l,i,begin);
	}
		}	

还掌握了BFS与DFS的思想与区别,DFS与贪心的结合(像DFS与曼哈顿距离的结合)按点(左上右下的方法)遍历

	int v[4][2]={
{-1,0},{0,1},{0,-1},{1,0}    };
for(int q=0;q<4;q++)
{next.x=start.x+v[q][0];next.y=start.y+v[q][1];}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值