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/12 12:55]
roxana_elena.stiuca used math notations
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 23: Line 23:
     }     }
  
-**1.2** Based on the following code for Insertion ​sort, analyze the algorithm'​s time complexity:​ +**1.2** Based on the following code for Selection ​sort, analyze the algorithm'​s time complexity:​ 
-    void insertionSort(int arr[], int n)  ​+    void selectionSort(int arr[], int n)  ​
     {  ​     {  ​
-        int i, key, j;   +        int i, j, min_idx, temp;   
-        for (i = 1; i < n; i++) +        for (i = 0; i < n - 1; i++) 
         {  ​         {  ​
-            ​key arr[i]  +            ​min_idx ​= i; 
-            j = i 1;   +            ​for (j = i 1; j < n; j++) 
-       +                if (arr[j< arr[min_idx]) 
-            /* Move elements of arr[0..i-1], that are  ​ +                    min_idx = j; 
-            ​greater than key, to one position ahead  ​ +             
-            ​of their current position *+            // swap the min element with the first element 
-            ​while (j >0 && ​arr[j> key)  +            ​temp = arr[min_idx]; 
-            ​{   +            arr[min_idx] = arr[i]; 
-                ​arr[j + 1] = arr[j];   +            arr[i] = temp;
-                j = j - 1;   +
-            }  ​ +
-            arr[j + 1] = key +
         }  ​         }  ​
     }     }
Line 48: 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 59: 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 71: 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 85: 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 103: 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].