Assignment 3 – Search Algorithm

by Mike Kerney

HTML

Mike Kerney
<br/> Assignment 3 - Search Algorithm
<br/>
<br/> Please enter a number between 1 and 1000.
<br/>
<br/> Input number:
<input type="numberbox" id="userGuess" value="500" />
<input type="button" value="Guess" onclick="program();" />
<br/>
<br/>
The time complexity of this algorithm is 0(log n). This is due to this being a binary, or half-interval search.  The algorithm cuts half
of the array for each operation until it finds the number, therefore it runs, at worst, in logarithmic time.
<div id="compGuess">
</div>
<div id="tries">
</div>

JavaScript

var array = [];
var outputnum = " ";
var outputtries = " ";
var high = 1000;
var low = 1;
var midpoint = 500;
var tries = 1;


function program() {
  clearDisplay();
  CreateArray();
  searchArray();
  outputtries += "Guessed correctly! It took " + tries + " tries.";
  document.getElementById("tries").innerHTML = outputtries;
}

function clearDisplay() {
  document.getElementById("tries").value = " ";
  document.getElementById("compGuess").value = " ";
}

function CreateArray() {

  for (var i = 0; i < 1000; i++) {
    array[i] = i + 1;
  }
}

function searchArray() {
  var guess = document.getElementById("userGuess").value;

  if (midpoint > guess) {
    outputnum += "Guessed " + midpoint + " - too high." + "<br>";
    high = midpoint;
    midpoint = parseInt(midpoint - ((midpoint - low) / 2));
    tries = tries + 1;
    searchArray();
  } else if (midpoint < guess) {
    outputnum += "Guessed " + midpoint + " - too low." + "<br>";
    low = midpoint;
    midpoint = parseInt(high - ((high - low) / 2));
    tries = tries + 1;
    searchArray();
  } else if (midpoint == guess) {
    outputnum += "Guessed " + midpoint + " correctly.";
  }
  document.getElementById("compGuess").innerHTML = outputnum;

}