素数环-谈代码优化
昨天在博问里面看到的一道算法题,原题如下:
给出一个N(0<N<20),在1~N的所有排列中,满足相邻两个数之和是素数的排列输出
比如当N = 4时,满足条件的素数环有如下几种
1 2 3 4
1 4 3 2
2 1 4 3
2 3 4 1
3 2 1 4
3 4 1 2
4 1 2 3
4 3 2 1
常规的做法是,找出这N个数的所有排列,然后依次检查每个排列,筛选出符合条件的排列即可。求排列可以用回溯法的排列树模型,筛选就按照题目要求即可,判断素数的算法也有很多,选择一个即可。注意不要忘记最后一个元素和第一个元素的检测。优化前的代码如下:
Read full article from 素数环-谈代码优化 - zdd - 博客园
No comments:
Post a Comment