Ben Chun Mary Murun JeVante Daohui 
Dustin Nariman Sai Qi Zack 
Namit Sanghyun Grant Chase Joingran
StephenK Emma PeterF PeterW

Adrian 

Homework 09

Final Exam

Lab 06

Make up everything one per half day and person

Programs are written for people (like me and Nick) so we need .java files.

Homework 10

public class Candidate implements Comparable<Candidate> {
  public int compareTo(Candidate other) {
    if (this.votes > other.votes) return -1; 
    else if (this.votes < other.votes) return 1; 
    else return -this.name.compareTo(other.name);
  }
  public Candidate(String name, int votes) {
    this.name = name;
    this.votes = votes;
  }
  private String name;
  private int votes; 
  public String toString() {
    return this.name + ":" + this.votes; 
  }
}

--

Welcome to DrJava.  Working directory is C:\Users\dgerman\Desktop
> ArrayList<String> a = new ArrayList<String>();
Static Error: Undefined class 'ArrayList'
> import java.util.ArrayList; // auto-import
ArrayList<String> a = new ArrayList<String>();
> a
[]
> a.add("Grant")
true
> a.add("Ben")
true
> a.add("Emma")
true
> a.add("PeterW")
true
> a.add("PeterF")
true
> a
[Grant, Ben, Emma, PeterW, PeterF]
> a.add("JeVante")
true
> a
[Grant, Ben, Emma, PeterW, PeterF, JeVante]
> a.add(2, "JeVante")
> a
[Grant, Ben, JeVante, Emma, PeterW, PeterF, JeVante]
> a.remove(2)
"JeVante"
> a
[Grant, Ben, Emma, PeterW, PeterF, JeVante]
> a.add(2, "StephenK")
> a
[Grant, Ben, StephenK, Emma, PeterW, PeterF, JeVante]
> int i = 2
> String temp = a.get(i)
> a.remove(i)
"StephenK"
> a.add(i+1, temp)
> a
[Grant, Ben, Emma, StephenK, PeterW, PeterF, JeVante]


--

Homework 10 says:

  take Candidate, Collections, Comparable and Election plus votes.txt
  (from the lecture today 06/11) 

  and modify sort inside Collections so that a certain type of sort it is
  (merge sort: described below)

--

  1 2 3 1 4 5 3 2 5     sort scending order

(a) build the longest sorted prefix (a)

 (1 2 3) (1 4 5 3 2 5)

(b) call what's left rest (b) 

(c) merge a with sorted b 

 (sort (1 2 3 1 4 5 3 2 5) 
=
 (merge (1 2 3) 
        (sort (1 4 5 3 2 5)) 
=
 (merge (1 2 3) 
        (merge (1 4 5) 
               (sort (3 2 5))) 

 (merge (1 2 3)
        (merge (1 4 5) 
               (merge (3) 
                      (sort 2 5))))

 (merge (1 2 3)
        (merge (1 4 5)
               (merge (3) 
                      (merge (2 5)
                             (sort ())))))

 (merge (1 2 3)
        (merge (1 4 5)
               (merge (3) 
                      (merge (2 5)
                             ())))) 
= ... 

 (merge (1 2 3)
        (1 2 3 4 5 5))

 (1 1 2 2 3 3 4 5 5)

You need define: sort, merge, longest (and probably rest). 

(define (sort lon)
  (cond ((empty? lon) lon)
        (else (merge (longest lon) (sort (rest lon))))))

--