算法分析补分与算法复杂度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

原文地址:https://www.cnblogs.com/yuanhongming/p/7588018.html