diff --git a/README.md b/README.md new file mode 100644 index 0000000..e07f3f3 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/sQ9gPiKY) diff --git a/app/src/main/java/assignment/Set.java b/app/src/main/java/assignment/Set.java index f579393..22ffb73 100644 --- a/app/src/main/java/assignment/Set.java +++ b/app/src/main/java/assignment/Set.java @@ -1,15 +1,46 @@ package assignment; public class Set { - public void add(T item) {} + private T[] set = (T[]) new Object[32]; - public boolean contains(T item) { + public void add(T item) { // O(n) + int firstFreeSpot = -1; // O(1) + for (int i = 0; i < set.length; i++) { // O(n) + if (set[i] == item) { // O(1) + return; + } + if (set[i] == null && firstFreeSpot == -1) { // O(1) + firstFreeSpot = i; // O(1) + } + } + set[firstFreeSpot] = item; // O(1) + } + + public boolean contains(T item) { // O(n) + for (T currentItem : set) { // O(n) + if (currentItem == item) { // O(1) + return true; + } + } return false; } - public void remove(T item) {} + public void remove(T item) { // O(n) + for (int i = 0; i < set.length; i++) { // O(n) + if (set[i] == item) { // O(1) + set[i] = null; // O(1) + return; + } + } + } - public int size() { - return 0; + public int size() { // O(n) + int nullCount = 0; // O(1) + for (int i = 0; i < set.length; i++) { // O(n) + if (set[i] == null) { // O(1) + nullCount++; // O(1) + } + } + return set.length - nullCount; } }