20162322 朱娅霖 蓝墨云班课算法复杂度3学习
任务:用 Java语言实现下列算法并进行单元测试, 请给出算法的时间复杂度。
-
求一个整数二维数组Arr[N][N]的所有元素之和。
-
对于输入的任意 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)