h
This commit is contained in:
@@ -31,8 +31,7 @@ class Examples {
|
|||||||
|
|
||||||
void testITreeSort(Tester t) {
|
void testITreeSort(Tester t) {
|
||||||
init();
|
init();
|
||||||
Util.sort(trees);
|
t.checkExpect(Util.sort(trees), treesSorted);
|
||||||
t.checkExpect(trees, treesSorted);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,16 +105,27 @@ class Leaf extends ATree {
|
|||||||
class Util {
|
class Util {
|
||||||
|
|
||||||
// Sort a list of trees from least to most frequent.
|
// Sort a list of trees from least to most frequent.
|
||||||
static void sort(ArrayList<ITree> trees) {
|
static ArrayList<ITree> sort(ArrayList<ITree> trees) {
|
||||||
for (int i = 0; i < trees.size() - 1; i++) {
|
System.out.println("Sorting.");
|
||||||
Util.insert(trees.get(i), trees, i);
|
// The sorted list starts out as just the first element.
|
||||||
|
ArrayList<ITree> sorted = new ArrayList<ITree>(Arrays.asList(trees.getFirst())); // Why must this be so fucking
|
||||||
|
// verbose.
|
||||||
|
|
||||||
|
if (trees.size() == 1)
|
||||||
|
return sorted;
|
||||||
|
|
||||||
|
for (int i = 1; i < trees.size() - 1; i++) {
|
||||||
|
Util.insert(trees.get(i), sorted, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return sorted;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert a Tree into an ArrayList of trees already sorted in [0, i], where
|
// Insert a Tree into an ArrayList of trees already sorted in [0, i], where
|
||||||
// 0 <= i <= trees.size(), such that it is sorted through [0, i].
|
// 0 <= i <= trees.size(), such that it is sorted through [0, i].
|
||||||
static void insert(ITree tree, ArrayList<ITree> trees, int i) {
|
static void insert(ITree tree, ArrayList<ITree> trees, int i) {
|
||||||
for (int j = 0; j < i + 1; j++) {
|
System.out.println("Set j = 0. While j < " + (i + 1) + ", j++.");
|
||||||
|
for (int j = 0; j < (i + 1); j++) {
|
||||||
if (trees.get(j).lessThan(tree)) {
|
if (trees.get(j).lessThan(tree)) {
|
||||||
trees.add(j, tree);
|
trees.add(j, tree);
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user