Advertisement
Guest User

helpers.c

a guest
Jan 23rd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. /**
  2.  * helpers.c
  3.  *
  4.  * Helper functions for Problem Set 3.
  5.  */
  6.  
  7. #include <cs50.h>
  8.  
  9. #include "helpers.h"
  10.  
  11. /**
  12.  * Returns true if value is in array of n values, else false.
  13.  */
  14. bool search(int value, int values[], int n)
  15. {
  16.    
  17.     //return false immediately if n is non-positive
  18.     if(n <= 0)
  19.     {
  20.         return false;
  21.     }
  22.    
  23.     //initialize variables needed for binary search
  24.     int start = 0, end = n-1;
  25.    
  26.     //iterate till all of the 'hay' has been searched
  27.     while(start <= end)
  28.     {
  29.         //return true if found
  30.         if(values[((start + end)/2)] == value)
  31.         {
  32.             return true;       
  33.         }
  34.        
  35.         //split in half and manipulate counters
  36.         else if(values[((start + end)/2)] > value)
  37.         {
  38.             end = (start + end)/2 - 1;
  39.         }
  40.         else
  41.         {
  42.             start = (start + end)/2 + 1;
  43.         }
  44.     }
  45.    
  46.     //return false if not found
  47.     return false;
  48. }
  49.  
  50. /**
  51.  * Sorts array of n values.
  52.  */
  53. void sort(int values[], int n)
  54. {
  55.     int temp, small = values[0], k = 0;
  56.    
  57.     if(n == 1)
  58.     {
  59.         return;    
  60.     }
  61.    
  62.     for(int i = 0; i < n; i++)
  63.     {
  64.         for(int j = i; j < n; j++)
  65.         {
  66.             if(values[j] < small)
  67.             {
  68.                 small = values[j];
  69.                 k = j;
  70.             }
  71.            
  72.             temp = values[k];
  73.             values[k] = values[i];
  74.             values[i] = temp;
  75.            
  76.         }
  77.     }
  78.    
  79.     return;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement