• 算法分析补分与算法复杂度3


    课堂练习

    第一题

    image

    由题意知当i小于等于n的时候进行循环,运算的时间复杂度得出应该为n,因此O(n)

    第二题

    image

    由题意知可以看出这是两个嵌套的循环,且每一个嵌套的时间复杂度均为n,则总体的时间复杂度应该为O(n2)

    第三题

    image

    由题意知可以先设n为一个具体的值,进而推导O(n2)的时间复杂度为n,所以最终复杂度就应该为根号下n。

    课后

    用 Java语言实现下列算法并进行单元测试, 请给出算法的时间复杂度。
    (1)求一个整数二维数组Arr[N][N]的所有元素之和。
    (2)对于输入的任意 3 个整数, 将它们按从小到大的顺序输出。
    (3)对于输入的任意 n 个整数, 输出其中的最大和最小元素。

    本周内发博客对实现情况进行总结
    /**

    • Created by yuanhongming on 2017/09/22.
      /
      public class test {
      public static void main(String args[]){
      int num[][]={{11,22,44,55}};
      for(int i=0;i<num.length;i++)
      {
      int sum = 0;
      for(int j=0;j<num[i].length;sum+=num[i][j],j++);
      System.out.println(sum+" ");
      }
      }
      }
      image
      /
      *

    • Created by yuanhongming on 2017/09/24.
      */
      import java.util.Scanner;
      public class test1
      {
      public static void main(String[] args)
      {
      int num0;
      Scanner in = new Scanner(System.in);
      System.out.println("输入第一个数:");
      int num1 = in.nextInt();
      System.out.println("输入第二个数:");
      int num2 = in.nextInt();
      System.out.println("输入第三个数:");
      int num3 = in.nextInt();
      if(num1>num2) {
      num0 = num2;
      num2 = num1;
      num1 = num0;
      }

       if(num2>num3){
           num0 = num2;
           num2 = num3;
           num3 = num0;
       }
       if(num1>num2){
           num0 = num2;
           num2 = num1;
           num1 = num0;
       }
      
       System.out.println("从小到大"+num1+" "+num2+" "+num3);
      

      }
      }

    image
    /**

    • Created by yuanhongming on 2017/09/24.
      /
      import java.util.
      ;
      public class test2 {

      public static void main(String[] args) {
      Scanner input = new Scanner (System.in);
      double max = 0,min = 0,nums = 1;
      System.out.println("请输入第1个数(输入“0”是退出):");
      nums = input.nextDouble();
      max = nums;
      min = nums;
      for(int i = 2;nums != 0;i++){
      System.out.println("请输入第"+i+"个数(输入“0”是退出):");
      nums = input.nextDouble();
      if(nums != 0){
      if(nums > max){
      max = nums;
      }
      if(nums < min){
      min = nums;
      }
      }
      }
      System.out.println("最大值为:"+max);
      System.out.println("最小值为:"+min);
      }

    }
    image

  • 相关阅读:
    服务器端渲染和客户端渲染
    混沌开窍---24幅由算法生成的正方形图像
    三生万物---算法生成的25幅三角形图像
    九尾之火---算法生成的动画图像
    最简单的分形图像生成算法
    正与邪---25幅由算法生成的五角星图像
    一幅画<十六芒星盾>---程序员or艺术家
    火火火---12幅算法生成火的图像
    恶魔的指纹---49幅由算法生成的七芒星图像
    混沌分形之电子云
  • 原文地址:https://www.cnblogs.com/yuanhongming/p/7588018.html
Copyright © 2020-2023  润新知