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;
}