/* (a) hat eine Zeitkomplexität von O(n), wobei n die Anzahl der Elemente in vec ist. Das liegt daran, dass jede Operation in der for-Schleife in konstanter Zeit ausgeführt wird und die Schleife genau n-Mal durchlaufen wird. */ int vector_summe(vector& vec){ int sum = 0; for (unsigned i =0; i < vec.size(); i++){ sum +=vec[i]; } return sum; } /* (b) hat eine Zeitkomplexität von O(n^2), da es zwei verschachtelte Schleifen gibt, die jeweils bis zur Größe des Vektors laufen. Dies bedeutet, dass für jedes Element in vec alle Elemente innerhalb des Elementes einmal betrachtet werden, was zu n*n Operationen führt. */ vector> pairs(vector& vec){ vector> returnpairs; pair p; for(unsigned i = 0; i> sorted_pairs(vector vec1, vector vec2){ vector> returnpairs; pair p; mergeSort(vec1); mergeSort(vec2); for(unsigned i = 0; i < vec1.size(); i++){ for(unsigned j = 0; j < vec2.size(); j++){ p = {vec1[i], vec2[j]}; returnpairs.push_back(p); } } }