Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| aa:lab:07 [2020/11/14 19:52] roxana_elena.stiuca added temp variable | aa:lab:07 [2020/11/23 23:12] (current) claudiu.dorobantu | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| { | { | ||
| int i, j, temp; | int i, j, temp; | ||
| - | for(i = 0; i < n; i++) | + | for(i = 0; i < n - 1; i++) | 
| { | { | ||
| - | for(j = 0; j < n-i-1; j++) | + | for(j = 0; j < n - i - 1; j++) | 
| { | { | ||
| - | if( arr[j] > arr[j+1]) | + | if(arr[j] > arr[j + 1]) | 
| { | { | ||
| // swap the elements | // swap the elements | ||
| temp = arr[j]; | temp = arr[j]; | ||
| - | arr[j] = arr[j+1]; | + | arr[j] = arr[j + 1]; | 
| - | arr[j+1] = temp; | + | arr[j + 1] = temp; | 
| } | } | ||
| } | } | ||
| Line 27: | Line 27: | ||
| {  | {  | ||
| int i, j, min_idx, temp;  | int i, j, min_idx, temp;  | ||
| - | for (i = 0; i < n-1; i++) | + | for (i = 0; i < n - 1; i++) | 
| {  | {  | ||
| min_idx = i; | min_idx = i; | ||
| - | for (j = i+1; j < n; j++) | + | for (j = i + 1; j < n; j++) | 
| if (arr[j] < arr[min_idx]) | if (arr[j] < arr[min_idx]) | ||
| min_idx = j; | min_idx = j; | ||
| Line 45: | Line 45: | ||
| Consider the following search algorithm of a value v in a sorted array arr:  | Consider the following search algorithm of a value v in a sorted array arr:  | ||
| - | int search (int arr[], int lo, int hi, int v){ | + | int search(int arr[], int lo, int hi, int v) | 
| - | int mid = (lo+hi)/2;  | + | { | 
| + | int mid = (lo + hi) / 2;  | ||
| if (arr[mid] == v) | if (arr[mid] == v) | ||
| return mid; | return mid; | ||
| Line 56: | Line 57: | ||
| return search(arr, mid, hi, v); | return search(arr, mid, hi, v); | ||
| } | } | ||
| - |  | + | |
| **2.1** Determine the recurrence for the search algorithm above. | **2.1** Determine the recurrence for the search algorithm above. | ||
| Line 68: | Line 69: | ||
| Consider the following modification to 'search' (which may not make sense in practice): | Consider the following modification to 'search' (which may not make sense in practice): | ||
| - |  | + | |
| - | int search (int arr[], int lo, int hi, int v){ | + | int search(int arr[], int lo, int hi, int v) | 
| + | { | ||
| if (!is_sorted(arr, lo, hi)) | if (!is_sorted(arr, lo, hi)) | ||
| return -1; | return -1; | ||
| - | int mid = (lo+hi)/2;  | + | int mid = (lo + hi) / 2;  | 
| if (arr[mid] == v) | if (arr[mid] == v) | ||
| return mid; | return mid; | ||
| Line 82: | Line 84: | ||
| return search(arr, mid, hi, v); | return search(arr, mid, hi, v); | ||
| } | } | ||
| - |  | + | |
| **3.1** In what time can we check if an array is sorted? | **3.1** In what time can we check if an array is sorted? | ||
| Line 100: | Line 102: | ||
| **4.5** Consider the following algorithm: | **4.5** Consider the following algorithm: | ||
| - | + | ||
| - | int fibo(int n){ | + | int fibo(int n) | 
| + | { | ||
| if (n <= 1) | if (n <= 1) | ||
| return n; | return n; | ||
| - | return fibo(n-1) + fibo(n-2); | + | return fibo(n - 1) + fibo(n - 2); | 
| } | } | ||
| - | + | ||
| - | Determine its complexity with regard to the size of the input. | + | Determine its complexity with regard to the size of the input. | 
| **4.6** Solve $math[T(n) = \sqrt n * T(\sqrt n) + n]. | **4.6** Solve $math[T(n) = \sqrt n * T(\sqrt n) + n]. | ||