/* search.pde Written by Justin Hsia Program to demonstrate millis() and compare linear vs. binary search of an ordered list. */ int[] intArr = new int[100000000]; void setup() { for(int i = 0; i < intArr.length; i = i + 1) { intArr[i] = i; } } void draw() { int n = intArr.length+1; println("Is " + n + " in intArr?"); int time = millis(); println(binarySearch(n)); println("Took " + (millis()-time) + " milliseconds to compute."); noLoop(); } boolean linearSearch(int num) { // implement me! for(int i = 0; i < intArr.length; i = i + 1) { if( num == intArr[i] ) { return true; } } return false; } boolean binarySearch(int num) { int low = 0; int high = intArr.length - 1; while(low <= high) { int mid = low + (high - low)/2; if(num < intArr[mid]) { high = mid - 1; } else if(num > intArr[mid]) { low = mid + 1; } else { return true; } } return false; }