import javax.swing.JOptionPane; import java.util.Arrays; public class Search22_23 { String[] names = new String[17]; public void setUp() { names[0] = "Josh"; names[1] = "Ling"; names[2] = "Irene"; names[3] = "Ethan"; names[4] = "Sophia"; names[5] = "Jayna"; names[6] = "Sahil"; names[7] = "Bilol"; names[8] = "Jason"; names[9] = "C.J."; names[10] = "Michael"; names[11] = "Ronan"; names[12] = "Aiden"; names[13] = "Royal"; names[14] = "Thomas"; names[15] = "Ishi"; names[16] = "Harrison"; } public boolean linearSearch(String toFind) { boolean found = false; int num = 0; while ( ! found && num < names.length) { String name = names[num]; if (toFind.equals(name)) { found = true; } num++; } return found; } public boolean binarySearch(String toFind) { Arrays.sort(names); System.out.println(Arrays.toString(names)); boolean found = false; String name; int left = 0, middle, right = names.length - 1; while ( ! found && left <= right) { middle = (left + right) / 2; name = names[middle]; // if toFind comes before name: if (toFind.compareTo(name) < 0) { right = middle - 1; } return found; } public static void main(String[] args) { Search22_23 s = new Search22_23(); s.setUp(); String name = JOptionPane.showInputDialog("Name?"); //boolean found = s.linearSearch(name); boolean found = s.binarySearch(name); JOptionPane.showMessageDialog(null, name + " found? " + found); } }