算法的设计原则是什么

发布网友 发布时间: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{
          

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com