Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
aa:lab:07 [2020/11/14 19:47]
roxana_elena.stiuca changed name of algorithm
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 26: Line 26:
     void selectionSort(int arr[], int n)  ​     void selectionSort(int arr[], int n)  ​
     {  ​     {  ​
-        int i, j, min_idx; ​  +        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].