20162322 朱娅霖 蓝墨云班课算法复杂度3学习

20162322 朱娅霖 蓝墨云班课算法复杂度3学习

任务:用 Java语言实现下列算法并进行单元测试, 请给出算法的时间复杂度。

  1. 求一个整数二维数组Arr[N][N]的所有元素之和。

  2. 对于输入的任意 3 个整数, 将它们按从小到大的顺序输出。

  3. 对于输入的任意 n 个整数, 输出其中的最大和最小元素。


1.求一个整数二维数组Arr[N][N]的所有元素之和。

实现代码:

public int  sumArray(int array[][]){
        int sum = 0;
        for (int i = 0; i < array.length ; i++) {

            for (int j = 0; j < array[i].length; j++) {
                sum = sum + array[i][j];
            }
        }
        return sum;
    }

测试运行结果:

算法时间复杂度:O(n^2)


2.对于输入的任意 3 个整数, 将它们按从小到大的顺序输出。

实现代码:

public void sorting(int x, int y, int z){
       int temp = 0;
        if( x > y) {
            temp = y;
            y = x;
            x = temp;
        }

        if( y > z){
            temp = y;
            y = z;
            z = temp;
        }
        if( x > y){
            temp = y;
            y = x;
            x = temp;
        }
        System.out.println("从小到大排列: " + x + ", " + y + ", "+ z );
    }

测试运行结果:

算法时间复杂度:O(1)


3.对于输入的任意 n 个整数, 输出其中的最大和最小元素。
实现代码:

public void getExtermum (int array[]){
       int min = 0 ,max = 0;
       for(int i=0; i<array.length;i++){
           if (array[i] > max) {
               max = array[i];
           } else if (min > array[i]) {
               min = array[i];
           }
       }
       System.out.println("最大值为:" + max );
       System.out.println("最小值为:" + min );
   }

测试运行结果:

算法时间复杂度:O(n)

原文地址:https://www.cnblogs.com/zyl905487045/p/7588057.html