Scala Array [Int]:BigO的最大值/最小值

时间:2018-08-28 15:31:47

标签: algorithm scala big-o

对于scala 2.x中的一个Int数组,Array [Int] .max的BigO表达式是什么? 然后Array [Int] .indexWhere(_ == max)的表达式是什么?

2 个答案:

答案 0 :(得分:1)

除非实现得很差,否则任何void findRowWithMinimalSum(int row, int col, int A[row][col]){ int i,j,sum,minSum,position; for(i=0; i<row; i++){ printf("\nGive the elements of row %d:\n", i+1); for(j=0; j<col; j++) scanf("%d", &A[i][j]); } for(i=0; i<row; i++){ for(j=0; j<col; j++) printf("%d", A[i][j]); printf("\n"); } for(i=0; i<row; i++){ sum=0; for(j=0; j<col; j++){ sum = sum + A[i][j]; } if(sum<minSum){ minSum = sum; position = i; } } printf("\nThe row with minimal sum is %d whose sum is %d", position+1, minSum); } int main(){ int row, column, m[50][50]; //function call findRowWithMinimalSum(3,3,m); return 0; } 运算符都将是max。您必须检查每个值一次(因此不得少于O(n)),如果检查任何值不止一次,则操作不正确。

答案 1 :(得分:0)

关于时间复杂度或BigO表达式,它们都是O(n)。因为它是一个数组,所以需要遍历整个数组以找到最大值或找到给定数字的位置。