发布网友 发布时间:2022-04-24 21:10
共1个回答
好二三四 时间:2022-09-05 05:36
设计算法时要考虑正确性、可读性、健壮性、高效率与低存储量。对算法的学习包括5个方面:设计算法、表示算法、确认算法、分析算法、验证算法。算法设计工作是不可能完全自动化的,应学习了解已经被实践证明有用的一些基本的算法设计方法,这些基本的设计方法不仅适用于计算机科学,而且适用于电气工程、运筹学等领域。
热心网友 时间:2024-03-11 09:01
1.穷举算法思想
穷举算法思想就是从所有的可能结果中一个一个的试验,知道试出正确的结果。具体的操作步骤如下:
1)对每一种可能的结果,计算其结果;
2)判断结果是否符合题目要求,如果符合则该结果正确,如果不符合则继续进行第1)步骤。
穷举算法思想的经典例子为鸡兔同笼为题(又称龟鹤同笼问题),题目为“一个笼子里有鸡兔,共15个头、46条腿,问鸡兔各有多少只?”。代码如下:
public static void main(String[] args) {
int head = 0;
int leg = 0;
System.out.println( "输入鸡兔头数:");
Scanner input=new Scanner(System.in);
head = input.nextInt();
System.out.println( "输入鸡兔腿数:");
Scanner input1=new Scanner(System.in);
leg = input1.nextInt();
boolean existence = false;
for( int i = 0; i <= head; i++){
if( 2 * i + 4 * ( head - i) == leg){
System.out.println( "鸡的个数 :" + i);
System.out.println( "兔的个数 :" + ( head - i));
existence = true;
}
}
if( !existence){
System.out.println( "你输入的数据不正确");
}
}
2.递推算法思想
递推算法算法就是根据已知条件,利用特定关系推导出中间推论,直到得到结果的算法。
递推算法思想最经典的例子是斐波那契数列 : 1,1,2,3,5,8,13......
上面的数列符合F(n) = F(n-1) + F(n-2).代码如下:
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n = input.nextInt();
System.out.println( fibonacci( n));
}
public static int fibonacci( int n){
if( n == 1){
return 1;
}else if( n == 2){
return 1;
}else{
return fibonacci( n - 1) + fibonacci( n - 2);
}
}
3.递归算法思想
递归算法思想是把大问题转换成同类问题的子问题,然后递归调用函数表示问题的解。
在使用递归的时候一定要注意调回递归函数的终止条件。
递归算法比较经典的例子是求阶乘。代码如下:
public static void main(String[] args) {
System.out.println( "输入一个大于零的数:");
Scanner input=new Scanner(System.in);
int n = input.nextInt();
System.out.println( factorial( n));
}
public static int factorial( int n){
if( n == 0){
return 1;
}else if( n == 1){
return 1;
}else{