您的位置:首页 > 编程语言 > Java开发

枚举与剪枝算法学习笔记

2014-05-30 20:18 316 查看
在上一篇暴力破解算法中,只适合处理数据不是太多,计算量不大的情况。若计算量很大,计算机会执行很长的时间。

 

而枚举与剪枝算法是指在暴力破解前,通过条件判断来过滤一些逻辑上不符合要求的数据。减去一些无意义的运算分支,来减少计算量,提高效率。

 

例:

/*
100-1000中 找出平方之后的尾数还是本身的整数
*/

public class T2
{
public static void main(String[] args)
{
for(int i=100; i<1000; i++){             //暴力破解
if(i*i % 1000==i) System.out.println(i + "," + i*i);
}
}
}


 

 

/*
100-1000中 找出平方之后的尾数还是本身的整数
*/

public class T2
{
public static void main(String[] args)
{

for(int i=100; i<1000; i++){
// 仔细观察   这样的数字的尾数有什么特征? 0 1 5 6
// 进一步,其末尾2位数必须是 25 76
// 更进一步,其末尾3位数必须是?。。。。
if(...) 剪枝动作
if(i*i % 1000==i) System.out.println(i + "," + i*i);
}
}
}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法