binsearch.c
contents ::
  binsearch.c
  files.c
  programargs.c

#include <stdio.h>
#include <stdlib.h>

int binsearch(int *a, int n, int x){
  int m=n/2;
  if(n==0) return 0;
  if(a[m]==x) return 1;
  else if(a[m]<x) return binsearch(a,m,x);
  else return binsearch(a+m+1,n-m-1,x);
}

void insertion_sort(int *a, int n){
  int guide=0;
  int i;
  int value;
  int j;

  for (i=0; i<n; i++){
    value = a[i];
    
    if(a[i]<guide){
      for(j=i-1; j >=0 && a[j] > value; j--){
         a[j+1]=a[j];
      }
      a[j+1]=value;
    }
    if (value>guide) guide=value;
    // printf("Value: %d\n",value);
    // printf("Guide: %d\n",guide);
  }
}

int rand(){ 
  static int rand_seed=10;
  rand_seed = rand_seed *1103515245+12345;    
  return (unsigned int)(rand_seed / 65536) % 10;  


main(){
  int length=10;
  int a[length];
  int x=5;
  int i;
  int m;
  for(i=0; i<length; i++){
    a[i]=rand();
  }

  for(i=0; i<length; i++){
    printf("%d\n",a[i]);
  }

  insertion_sort(a, length);

  if(binsearch(a, length,x)){
    printf("Found value: %d\n", x);
  } else
    printf("could not find value: %d\n", x);

  return 0;
}

James Little