CO1. Explain the use of big O, omega and theta notations to describe the amount of work done by an algorithm.
CO2. Discuss factors that influence the choice of algorithm, (complexity of implementation, maintainability, or application-specific patterns in the data being processed).
CO3. Demonstrate the capability to evaluate algorithms, to select from a range of options, to provide justification for the selection, and to implement the algorithm in a programming context.
CO4. Implement greedy, divide-and conquer, and backtracking algorithms to solve appropriate problems.
CO5. Discuss the computational efficiency of the principal algorithms for sorting, searching and hashing.
CO6. Solve problems using fundamental graph algorithms, including depth-first and breadth-first search, shortest path, topological sort, and minimum spanning tree algorithms.
Only submit your implementation of theDatabasepackage (BinaryTree.java,Game.java,GameList.java,Trophy.java, andUser.java) - in asingle ZIP archive.
2.No other files ordirectoriesare needed.
Assessment 2 Part B Code.zip Assessment 2 Part B Code/.DS_Store __MACOSX/Assessment 2 Part B Code/._.DS_Store Assessment 2 Part B Code/junit-4.12.jar META-INF/MANIFEST.MF Manifest-Version: 1.0 Implementation-Vendor: JUnit Implementation-Title: JUnit Implementation-Version: 4.12 Implementation-Vendor-Id: junit Built-By: jenkins Build-Jdk: 1.6.0_45 Created-By: Apache Maven 3.0.4 Archiver-Version: Plexus Archiver org/junit/ClassRule.class package org.junit; public abstract interface ClassRule extends annotation.Annotation { } org/junit/Assert.class package org.junit; public synchronized class Assert { protected void Assert(); public static void assertTrue(String, boolean); public static void assertTrue(boolean); public static void assertFalse(String, boolean); public static void assertFalse(boolean); public static void fail(String); public static void fail(); public static void assertEquals(String, Object, Object); private static boolean equalsRegardingNull(Object, Object); private static boolean isEquals(Object, Object); public static void assertEquals(Object, Object); public static void assertNotEquals(String, Object, Object); public static void assertNotEquals(Object, Object); private static void failEquals(String, Object); public static void assertNotEquals(String, long, long); public static void assertNotEquals(long, long); public static void assertNotEquals(String, double, double, double); public static void assertNotEquals(double, double, double); public static void assertNotEquals(float, float, float); public static void assertArrayEquals(String, Object[], Object[]) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(Object[], Object[]); public static void assertArrayEquals(String, boolean[], boolean[]) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(boolean[], boolean[]); public static void assertArrayEquals(String, byte[], byte[]) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(byte[], byte[]); public static void assertArrayEquals(String, char[], char[]) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(char[], char[]); public static void assertArrayEquals(String, short[], short[]) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(short[], short[]); public static void assertArrayEquals(String, int[], int[]) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(int[], int[]); public static void assertArrayEquals(String, long[], long[]) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(long[], long[]); public static void assertArrayEquals(String, double[], double[], double) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(double[], double[], double); public static void assertArrayEquals(String, float[], float[], float) throws internal.ArrayComparisonFailure; public static void assertArrayEquals(float[], float[], float); private static void internalArrayEquals(String, Object, Object) throws internal.ArrayComparisonFailure; public static void assertEquals(String, double, double, double); public static void assertEquals(String, float, float, float); public static void assertNotEquals(String, float, float, float); private static boolean doubleIsDifferent(double, double, double); private static boolean floatIsDifferent(float, float, float); public static void assertEquals(long, long); public static void assertEquals(String, long, long); public static void assertEquals(double, double); public static void assertEquals(String, double, double); public static void assertEquals(double, double, double); public static void assertEquals(float, float, float); public static void assertNotNull(String, Object); public static void assertNotNull(Object); public static void assertNull(String, Object); public static void assertNull(Object); private static void failNotNull(String, Object); public static void assertSame(String, Object, Object); public static void assertSame(Object, Object); public static void assertNotSame(String, Object, Object); public static void assertNotSame(Object, Object); private static void failSame(String); private static void failNotSame(String, Object, Object); private static void failNotEquals(String, Object, Object); static String format(String, Object, Object); private static String formatClassAndValue(Object, String); public static void assertEquals(String, Object[], Object[]); public static void assertEquals(Object[], Object[]); public static void assertThat(Object, org.hamcrest.Matcher); public static void assertThat(String, Object, org.hamcrest.Matcher); } org/junit/After.class package org.junit; public abstract interface After extends annotation.Annotation { } org/junit/rules/Stopwatch$Clock.class package org.junit.rules; synchronized class Stopwatch$Clock { void Stopwatch$Clock(); public long nanoTime(); } org/junit/rules/DisableOnDebug.class package org.junit.rules; public synchronized class DisableOnDebug implements TestRule { private final TestRule rule; private final boolean debugging; public void DisableOnDebug(TestRule); void DisableOnDebug(TestRule, java.util.List); public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description); private static boolean isDebugging(java.util.List); public boolean isDebugging(); } org/junit/rules/ExternalResource.class package org.junit.rules; public abstract synchronized class ExternalResource implements TestRule { public void ExternalResource(); public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description); private org.junit.runners.model.Statement statement(org.junit.runners.model.Statement); protected void before() throws Throwable; protected void after(); } org/junit/rules/TestWatcher$1.class package org.junit.rules; synchronized class TestWatcher$1 extends org.junit.runners.model.Statement { void TestWatcher$1(TestWatcher, org.junit.runner.Description, org.junit.runners.model.Statement) throws Exception; public void evaluate() throws Throwable; } org/junit/rules/TemporaryFolder.class package org.junit.rules; public synchronized class TemporaryFolder extends ExternalResource { private final java.io.File parentFolder; private java.io.File folder; public void TemporaryFolder(); public void TemporaryFolder(java.io.File); protected void before() throws Throwable; protected void after(); public void create() throws java.io.IOException; public java.io.File newFile(String) throws java.io.IOException; public java.io.File newFile() throws java.io.IOException; public java.io.File newFolder(String) throws java.io.IOException; public transient java.io.File newFolder(String[]) throws java.io.IOException; private void validateFolderName(String) throws java.io.IOException; private boolean isLastElementInArray(int, String[]); public java.io.File newFolder() throws java.io.IOException; private java.io.File createTemporaryFolderIn(java.io.File) throws java.io.IOException; public java.io.File getRoot(); public void delete(); private void recursiveDelete(java.io.File); } org/junit/rules/Timeout$Builder.class package org.junit.rules; public synchronized class Timeout$Builder { private boolean lookForStuckThread; private long timeout; private java.util.concurrent.TimeUnit timeUnit; protected void Timeout$Builder(); public Timeout$Builder withTimeout(long, java.util.concurrent.TimeUnit); protected long getTimeout(); protected java.util.concurrent.TimeUnit getTimeUnit(); public Timeout$Builder withLookingForStuckThread(boolean); protected boolean getLookingForStuckThread(); public Timeout build(); } org/junit/rules/RunRules.class package org.junit.rules; public synchronized class RunRules extends org.junit.runners.model.Statement { private final org.junit.runners.model.Statement statement; public void RunRules(org.junit.runners.model.Statement, Iterable, org.junit.runner.Description); public void evaluate() throws Throwable; private static org.junit.runners.model.Statement applyAll(org.junit.runners.model.Statement, Iterable, org.junit.runner.Description); } org/junit/rules/TestWatchman$1.class package org.junit.rules; synchronized class TestWatchman$1 extends org.junit.runners.model.Statement { void TestWatchman$1(TestWatchman, org.junit.runners.model.FrameworkMethod, org.junit.runners.model.Statement) throws Throwable; public void evaluate() throws Throwable; } org/junit/rules/Verifier$1.class package org.junit.rules; synchronized class Verifier$1 extends org.junit.runners.model.Statement { void Verifier$1(Verifier, org.junit.runners.model.Statement) throws Throwable; public void evaluate() throws Throwable; } org/junit/rules/ExpectedException.class package org.junit.rules; public synchronized class ExpectedException implements TestRule { private final ExpectedExceptionMatcherBuilder matcherBuilder; private String missingExceptionMessage; public static ExpectedException none(); private void ExpectedException(); public ExpectedException handleAssertionErrors(); public ExpectedException handleAssumptionViolatedExceptions(); public ExpectedException reportMissingExceptionWithMessage(String); public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description); public void expect(org.hamcrest.Matcher); public void expect(Class); public void expectMessage(String); public void expectMessage(org.hamcrest.Matcher); public void expectCause(org.hamcrest.Matcher); private void handleException(Throwable) throws Throwable; private boolean isAnyExceptionExpected(); private void failDueToMissingException() throws AssertionError; private String missingExceptionMessage(); } org/junit/rules/ExpectedException$ExpectedExceptionStatement.class package org.junit.rules; synchronized class ExpectedException$ExpectedExceptionStatement extends org.junit.runners.model.Statement { private final org.junit.runners.model.Statement next; public void ExpectedException$ExpectedExceptionStatement(ExpectedException, org.junit.runners.model.Statement); public void evaluate() throws Throwable; } org/junit/rules/RuleChain.class package org.junit.rules; public synchronized class RuleChain implements TestRule { private static final RuleChain EMPTY_CHAIN; private java.util.List rulesStartingWithInnerMost; public static RuleChain emptyRuleChain(); public static RuleChain outerRule(TestRule); private void RuleChain(java.util.List); public RuleChain around(TestRule); public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description); static void (); } org/junit/rules/ErrorCollector$1.class package org.junit.rules; synchronized class ErrorCollector$1 implements java.util.concurrent.Callable { void ErrorCollector$1(ErrorCollector, String, Object, org.hamcrest.Matcher); public Object call() throws Exception; } org/junit/rules/TestRule.class package org.junit.rules; public abstract interface TestRule { public abstract org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description); } org/junit/rules/Verifier.class package org.junit.rules; public abstract synchronized class Verifier implements TestRule { public void Verifier(); public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description); protected void verify() throws Throwable; } org/junit/rules/Stopwatch.class package org.junit.rules; public abstract synchronized class Stopwatch implements TestRule { private final Stopwatch$Clock clock; private volatile long startNanos;