L'Hopital's Rule |
Refinement |
Invocation (or Activation) Record |
Tail Recursion |
Landau Numbers |
(1) | _____ |
|
(2) | _____ |
is of higher order than |
(3) | _____ |
Recursion can be used to solve the Towers of Hanoi problem |
(4) | _____ |
The linear search algorithm discussed in lecture has a worst case time efficiency bound that is |
(1) | _____ |
For the bubble sort algorithm we discussed in lecture: |
|
||
(2) | _____ |
For the merge sort algorithm we discussed in lecture: |
|
drawLine(int x1, int y1, int x2, int y2)
function
draws a line from the point (x1, y1) to the point (x2, y2).)
void drawRuler(int left, int right, int level) { int mid; if (level < 1) return; mid = (left + right) / 2; drawLine(mid, 100, mid, 100-level*5); drawRuler(left, mid-1, level-1); drawRuler(mid+1, right, level-1); }
n
(the
size of the array). Explain each step of your derivation. (Note:
Your answer must be given in terms of .)
double *moments(double x[], int n, int k) { double xbar, sum; double *m, *total; int i, j; // Initialization // m = new double[k+1]; total = new double[k+1]; for (i=0; i<=k; i++) { m[i] = 0; total[i] = 0; } if (k >= 2) { // Calculate the mean // sum = 0; for (i=0; i<n; i++) { sum += x[i]; } xbar = sum/(double)n; // Calculate moments 2 through k // for (j=2; j<=k; j++) { for (i=0; i<n; i++) { total[j] += pow((x[i] - xbar), j); } m[j] = total[j] / (double)n; } } delete[] total; return m; }
/** * Calculates the nth Fibonacci Number * * @param n The desired Fibonacci Number (must be positive) */ int fibonacci(int n) { }
double power(double x, unsigned int n) { if (n == 0) return 1.0; else return x*power(x, n-1); }
is fairly inefficient. For example, observe that the computation of requires 8 multiplications. However, if we observe that then we can make this algorithm more efficient.
Use this observation to improve this algorithm. Your answer must be recursive. Hint: A special case is needed for odd exponents.
sort
is implemented as
follows:
void sort(int a[], int length) { int i, j, k, h, tmp; int cols[3] = {7, 3, 1}; for (k=0; k<3; k++) { h = cols[k]; for (i=h; i<length; i++) { tmp = a[i]; j = i; while ( (j>=h) && (a[j-h]>tmp) ) { a[j] = a[j-h]; j = j - h; } a[j]=tmp; } cout << endl << "Iteration " << k << ": "; for (i=0; i<length; i++) { cout << a[i] << " "; } cout << endl; } }
What will be printed when the following main
function is executed?
int main(void) { int a[6] = {8,4,7,3,9,3}; int i, n; n = 6; sort(a, n); return 1; }
[4, 4, 1, 0, 4, 4, 1, 0, 1, 1]
Copyright 2010