zoukankan      html  css  js  c++  java
  • 算法分析补分与算法复杂度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

  • 相关阅读:
    HTML简介
    web服务器的原理
    静态网页和动态网页的区别
    HTTP协议相关原理
    C/S,B/S的应用的区别
    git撤销commit但未push的文件
    表单提交不刷新页面
    httpclient请求中文乱码问题
    web项目,@return@see@param等注解Maven install报错,不能识别
    Hive 基本操作
  • 原文地址:https://www.cnblogs.com/yuanhongming/p/7588018.html
Copyright © 2011-2022 走看看