Advertisement
Guest User

Untitled

a guest
Mar 16th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.19 KB | None | 0 0
  1. // Helper functions
  2.  
  3. #include <cs50.h>
  4. #include <stdio.h>
  5. #include <math.h>
  6. #include "helpers.h"
  7.  
  8. // Returns true if value is in array of n values, else false
  9. // Value = What we're looking for
  10. // Values = haystack
  11. // n = size of haystack
  12. int midpoint(int min, int max, int roundd);
  13. bool search(int value, int values[], int n)
  14. {
  15.     // TODO: implement a searching algorithm
  16.     if (n < 0)
  17.     {
  18.         return false;
  19.     }
  20.     int min = values[0]; // Min value (constantly changed)
  21.     int max = values[n-1]; // Max value (constantly changed)
  22.     int mpoint;
  23.  
  24.     for (int i = 0, z = (max - min); i < z; i++)
  25.     {
  26.         mpoint = midpoint(max, min, 0);
  27.         if (mpoint <= value)
  28.         {
  29.             min = mpoint;
  30.             mpoint = midpoint(max, min, 1);
  31.         }
  32.  
  33.         if (mpoint > value)
  34.         {
  35.             mpoint = midpoint(max, min, -1);
  36.             max = mpoint;
  37.  
  38.         }
  39.     }
  40.     if (mpoint == value)
  41.     {
  42.         return true;
  43.     }
  44.     else
  45.     {
  46.         return false;
  47.     }
  48. }
  49.  
  50. // Sorts array of n values
  51. // values = haystack
  52. // n = size
  53. void sort(int values[], int n)
  54. {
  55.     //printf("%i %i %i %i %i %i \n\n\n\n", values[0], values[1], values[2], values[3], values[4], values[5]); //For Testing
  56.     for (int f = 0; f < n; f++)
  57.     {
  58.         for (int i = 0; i < (n - 1); i++)
  59.         {
  60.             if (values[i] > values[i + 1])
  61.             {
  62.                 int i1 = values[i];
  63.                 int i2 = values[i + 1];
  64.                 values[i] = i2;
  65.                 values[i + 1] = i1;
  66.             }
  67.             //printf("Value of i: %i  Value of i+1: %i\n", values[i], values[i+1]); //For Testing
  68.         }
  69.         //printf("\n"); //For Testing
  70.     }
  71.  
  72.  
  73.  
  74.     //for (int z = 0; z < n; z++) //For Testing
  75.     //{
  76.         //printf("%i \n", values[z]);
  77.     //}
  78.     // TODO: implement an O(n^2) sorting algorithm
  79. }
  80.  
  81. int midpoint(int min, int max, int roundd)
  82. {
  83.     float a = min;
  84.     float b = max;
  85.     float avg = (a + b) / 2;
  86.     if (roundd == 0)
  87.     {
  88.         // do nothing
  89.     }
  90.     if (roundd == 1)
  91.     {
  92.         avg = avg + 0.7;
  93.     }
  94.     if (roundd == -1)
  95.     {
  96.         avg = avg - 0.4;
  97.     }
  98.     avg = round(avg);
  99.     //printf("Float: %f      Int: %i", avg, (int) avg); //Testing
  100.     return avg;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement