Insertion Sorting

Let's not assume that the vector is sorted, let's do it ourselves.

Insertion Sorting

Let's not assume that the vector is sorted, let's do it ourselves.

Insertion Sorting

Let's not assume that the vector is sorted, let's do it ourselves.

Insertion Sorting

Let's not assume that the vector is sorted, let's do it ourselves.

Insertion Sorting

Let's not assume that the vector is sorted, let's do it ourselves.

Insertion Sorting

This simple sort works its way through all the positions in the vector and makes sure that the smallest remaining unsorted element gets put in the current position. The basic outline of the sort method is a while loop in which currentPos takes each value from 0 until the last position in the vector, i.e. v.size()-1.

Insertion Sorting

This simple sort works its way through all the positions in the vector and makes sure that the smallest remaining unsorted element gets put in the current position. The basic outline of the sort method is a while loop in which currentPos takes each value from 0 until the last position in the vector, i.e. v.size()-1.

Insertion Sorting

This simple sort works its way through all the positions in the vector and makes sure that the smallest remaining unsorted element gets put in the current position. The basic outline of the sort method is a while loop in which currentPos takes each value from 0 until the last position in the vector, i.e. v.size()-1.

Insertion Sorting

At each time through the loop, we have to work out which is the smallest remaining element...

Insertion Sorting

At each time through the loop, we have to work out which is the smallest remaining element...

Insertion Sorting

At each time through the loop, we have to work out which is the smallest remaining element...

Insertion Sorting

...and then put that value in the current position, making sure to swap out the old value into that position.

Insertion Sorting

...and then put that value in the current position, making sure to swap out the old value into that position.

Insertion Sorting

...and then put that value in the current position, making sure to swap out the old value into that position.

Insertion Sorting

(We can make this a bit quicker by the following observation: when we have sorted everything but the last element, we already know it must be in the right place, cos there isn't anything left that it can be bigger than!)

Insertion Sorting

(We can make this a bit quicker by the following observation: when we have sorted everything but the last element, we already know it must be in the right place, cos there isn't anything left that it can be bigger than!)

Insertion Sorting

(We can make this a bit quicker by the following observation: when we have sorted everything but the last element, we already know it must be in the right place, cos there isn't anything left that it can be bigger than!)

Insertion Sorting

Swapping two values is really easy

Insertion Sorting

Swapping two values is really easy

Insertion Sorting

Swapping two values is really easy

Insertion Sorting

You just need a variables to hold onto the values. We'll declare them to be a general Object, even though we know they are actually particular kinds of Object, i.e. Strings.

Insertion Sorting

You just need a variables to hold onto the values. We'll declare them to be a general Object, even though we know they are actually particular kinds of Object, i.e. Strings.

Insertion Sorting

You just need a variables to hold onto the values. We'll declare them to be a general Object, even though we know they are actually particular kinds of Object, i.e. Strings.

Insertion Sorting

Now we'll just put them back the other way around.

Insertion Sorting

Now we'll just put them back the other way around.

Insertion Sorting

Now we'll just put them back the other way around.

Insertion Sorting

All that remains is to calculate the smallest remaining element, given the current position of interest

Insertion Sorting

All that remains is to calculate the smallest remaining element, given the current position of interest

Insertion Sorting

All that remains is to calculate the smallest remaining element, given the current position of interest

Insertion Sorting

We need a variable to hold the point we have got to in the search (the current position, but not the same as the current position in the calling sort method),

Insertion Sorting

We need a variable to hold the point we have got to in the search (the current position, but not the same as the current position in the calling sort method),

Insertion Sorting

We need a variable to hold the point we have got to in the search (the current position, but not the same as the current position in the calling sort method),

Insertion Sorting

which can be initialised with the value of the parameter.

Insertion Sorting

which can be initialised with the value of the parameter.

Insertion Sorting

which can be initialised with the value of the parameter.

Insertion Sorting

We also need a new variable to hold the candidate for "position of the smallest element".

Insertion Sorting

We also need a new variable to hold the candidate for "position of the smallest element".

Insertion Sorting

We also need a new variable to hold the candidate for "position of the smallest element".

Insertion Sorting

This can be initialised to the same value.

Insertion Sorting

This can be initialised to the same value.

Insertion Sorting

This can be initialised to the same value.

Insertion Sorting

But if we assume that the starting position is a candidate for the smallest value, then we don't need to test it and we can just skip over it.

Insertion Sorting

But if we assume that the starting position is a candidate for the smallest value, then we don't need to test it and we can just skip over it.

Insertion Sorting

But if we assume that the starting position is a candidate for the smallest value, then we don't need to test it and we can just skip over it.

Insertion Sorting

Obviously there has to be a loop that iterates around the rest of the vector

Insertion Sorting

Obviously there has to be a loop that iterates around the rest of the vector

Insertion Sorting

Obviously there has to be a loop that iterates around the rest of the vector

Insertion Sorting

and when the whole vector is processed we can just return the position of the smallest, knowing that there can't be any bigger ones in the part of the array that we inspected.

Insertion Sorting

and when the whole vector is processed we can just return the position of the smallest, knowing that there can't be any bigger ones in the part of the array that we inspected.

Insertion Sorting

and when the whole vector is processed we can just return the position of the smallest, knowing that there can't be any bigger ones in the part of the array that we inspected.

Insertion Sorting

Inside the loop we need to work out the current and smallest strings so that we can compare them

Insertion Sorting

Inside the loop we need to work out the current and smallest strings so that we can compare them

Insertion Sorting

Inside the loop we need to work out the current and smallest strings so that we can compare them

Insertion Sorting

and if the comparison reveals that we have found something smaller than the "smallest string so far" then we save the new position.

Insertion Sorting

and if the comparison reveals that we have found something smaller than the "smallest string so far" then we save the new position.

Insertion Sorting

and if the comparison reveals that we have found something smaller than the "smallest string so far" then we save the new position.

Insertion Sorting

Finished code.

import java.util.Vector;

class Searcher {

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("chicken");
		v.addElement("cow");
		v.addElement("dog");
		v.addElement("fish");
		v.addElement("fox");
		v.addElement("goat");
		v.addElement("goose");
		v.addElement("horse");
		v.addElement("mouse");
		v.addElement("pig");
		v.addElement("rabbit");
		v.addElement("sheep");
		v.addElement("sparrow");
		}

	}
import java.util.Vector;

class Searcher {

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("chicken");
		v.addElement("cow");
		v.addElement("dog");
		v.addElement("fish");
		v.addElement("fox");
		v.addElement("goat");
		v.addElement("goose");
		v.addElement("horse");
		v.addElement("mouse");
		v.addElement("pig");
		v.addElement("rabbit");
		v.addElement("sheep");
		v.addElement("sparrow");
		}

	}
import java.util.Vector;

class Searcher {

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	*public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		...
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		...
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		...
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			...
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			...
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			...
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			int nextSmallestPos=getSmallest(v,currentPos);
			...
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			int nextSmallestPos=getSmallest(v,currentPos);
			...
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			int nextSmallestPos=getSmallest(v,currentPos);
			...
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	*public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		...
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		...
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		...
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		...
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		...
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		...
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	*private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		*...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		*...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		int smallest;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		int smallest;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		int smallest;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		int smallest=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		int smallest=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt;
		int smallest=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		...
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			...
			curr++;
			}
		???
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			...
			curr++;
			}
		???
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			...
			curr++;
			}
		???
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			...
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			...
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			...
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			String currString=(String)v.elementAt(curr);
			String smallestString=(String)v.elementAt(smallest);
			...
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			String currString=(String)v.elementAt(curr);
			String smallestString=(String)v.elementAt(smallest);
			...
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			String currString=(String)v.elementAt(curr);
			String smallestString=(String)v.elementAt(smallest);
			...
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			String currString=(String)v.elementAt(curr);
			String smallestString=(String)v.elementAt(smallest);
			if(currString.compareTo(smallestString)<0)
				smallest=curr;
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}
import java.util.Vector;

class Searcher {

	private int getSmallest(Vector v, int startingAt){
		int curr=startingAt+1;
		int smallest=startingAt;
		while(curr!=v.size()){
			String currString=(String)v.elementAt(curr);
			String smallestString=(String)v.elementAt(smallest);
			if(currString.compareTo(smallestString)<0)
				smallest=curr;
			curr++;
			}
		return smallest;
		}

	private void swap(Vector v, int here, int there){
		Object objectHere=v.elementAt(here);
		Object objectThere=v.elementAt(there);
		v.setElementAt(objectHere, there);
		v.setElementAt(objectThere, here);
		}

	public void sort(){
		int currentPos=0;
		while(currentPos!=v.size()-1){
			int nextSmallestPos=getSmallest(v,currentPos);
			swap(v, currentPos, nextSmallestPos);
			currentPos++;
			}
		}

	public int search(String s){
		int left=0, right=v.size()-1;
		int middle=0;

		while(left!=right-1){
			middle=(left+right)/2;
			String currString=(String)v.elementAt(middle);
			if(currString.compareTo(s)<0)
				left=middle;
			else if(currString.compareTo(s)>0)
				right=middle;
			else {
				left=middle;
				right=middle+1;
				};
			}

		if(s.equals(v.elementAt(middle))) return middle;
		else return -1;
		}

	Vector v=new Vector();

	public Searcher(){
		v.addElement("cat");
		v.addElement("dog");
		v.addElement("cow");
		v.addElement("fox");
		v.addElement("rabbit");
		v.addElement("goose");
		v.addElement("fish");
		v.addElement("sparrow");
		v.addElement("horse");
		v.addElement("goat");
		v.addElement("pig");
		v.addElement("sheep");
		v.addElement("chicken");
		v.addElement("mouse");
		}

	}