Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Helper functions
- #include <cs50.h>
- #include <stdio.h>
- #include <math.h>
- #include "helpers.h"
- // Returns true if value is in array of n values, else false
- // Value = What we're looking for
- // Values = haystack
- // n = size of haystack
- int midpoint(int min, int max, int roundd);
- bool search(int value, int values[], int n)
- {
- // TODO: implement a searching algorithm
- if (n < 0)
- {
- return false;
- }
- int min = values[0]; // Min value (constantly changed)
- int max = values[n-1]; // Max value (constantly changed)
- int mpoint;
- for (int i = 0, z = (max - min); i < z; i++)
- {
- mpoint = midpoint(max, min, 0);
- if (mpoint <= value)
- {
- min = mpoint;
- mpoint = midpoint(max, min, 1);
- }
- if (mpoint > value)
- {
- mpoint = midpoint(max, min, -1);
- max = mpoint;
- }
- }
- if (mpoint == value)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- // Sorts array of n values
- // values = haystack
- // n = size
- void sort(int values[], int n)
- {
- //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
- for (int f = 0; f < n; f++)
- {
- for (int i = 0; i < (n - 1); i++)
- {
- if (values[i] > values[i + 1])
- {
- int i1 = values[i];
- int i2 = values[i + 1];
- values[i] = i2;
- values[i + 1] = i1;
- }
- //printf("Value of i: %i Value of i+1: %i\n", values[i], values[i+1]); //For Testing
- }
- //printf("\n"); //For Testing
- }
- //for (int z = 0; z < n; z++) //For Testing
- //{
- //printf("%i \n", values[z]);
- //}
- // TODO: implement an O(n^2) sorting algorithm
- }
- int midpoint(int min, int max, int roundd)
- {
- float a = min;
- float b = max;
- float avg = (a + b) / 2;
- if (roundd == 0)
- {
- // do nothing
- }
- if (roundd == 1)
- {
- avg = avg + 0.7;
- }
- if (roundd == -1)
- {
- avg = avg - 0.4;
- }
- avg = round(avg);
- //printf("Float: %f Int: %i", avg, (int) avg); //Testing
- return avg;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement