diff --git a/_notebooks/2024-04-03-Algorhytmic-Blog.ipynb b/_notebooks/2024-04-03-Algorhytmic-Blog.ipynb index 64b4023..9d8b76d 100644 --- a/_notebooks/2024-04-03-Algorhytmic-Blog.ipynb +++ b/_notebooks/2024-04-03-Algorhytmic-Blog.ipynb @@ -74,12 +74,8 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "vscode": { - "languageId": "java" - } - }, + "execution_count": 1, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -92,174 +88,138 @@ "After Bubble Sort:\n", "[{\"number\":2, \"name\":\"Abigail\", \"classroom\":\"CSP\"}, {\"number\":3, \"name\":\"Aditi\", \"classroom\":\"CSP\"}, {\"number\":5, \"name\":\"Aditya\", \"classroom\":\"CSA\"}, {\"number\":1, \"name\":\"Alara\", \"classroom\":\"CSP\"}, {\"number\":8, \"name\":\"Alex\", \"classroom\":\"CSA\"}, {\"number\":11, \"name\":\"Anthony\", \"classroom\":\"CSA\"}, {\"number\":14, \"name\":\"David\", \"classroom\":\"CSA\"}, {\"number\":12, \"name\":\"Emaad\", \"classroom\":\"CSA\"}, {\"number\":7, \"name\":\"Ethan T\", \"classroom\":\"CSA\"}, {\"number\":10, \"name\":\"James\", \"classroom\":\"CSA\"}, {\"number\":6, \"name\":\"Jishnu\", \"classroom\":\"CSA\"}, {\"number\":13, \"name\":\"Krishiv\", \"classroom\":\"CSA\"}, {\"number\":9, \"name\":\"Tanvi\", \"classroom\":\"CSP\"}, {\"number\":13, \"name\":\"Tay\", \"classroom\":\"CSA\"}, {\"number\":4, \"name\":\"Yuri\", \"classroom\":\"CSA\"}]\n", "\n", - "Time taken for Bubble Sort: 0 milliseconds\n", - "\n", "After Merge Sort:\n", "[{\"number\":2, \"name\":\"Abigail\", \"classroom\":\"CSP\"}, {\"number\":3, \"name\":\"Aditi\", \"classroom\":\"CSP\"}, {\"number\":5, \"name\":\"Aditya\", \"classroom\":\"CSA\"}, {\"number\":1, \"name\":\"Alara\", \"classroom\":\"CSP\"}, {\"number\":8, \"name\":\"Alex\", \"classroom\":\"CSA\"}, {\"number\":11, \"name\":\"Anthony\", \"classroom\":\"CSA\"}, {\"number\":14, \"name\":\"David\", \"classroom\":\"CSA\"}, {\"number\":12, \"name\":\"Emaad\", \"classroom\":\"CSA\"}, {\"number\":7, \"name\":\"Ethan T\", \"classroom\":\"CSA\"}, {\"number\":10, \"name\":\"James\", \"classroom\":\"CSA\"}, {\"number\":6, \"name\":\"Jishnu\", \"classroom\":\"CSA\"}, {\"number\":13, \"name\":\"Krishiv\", \"classroom\":\"CSA\"}, {\"number\":9, \"name\":\"Tanvi\", \"classroom\":\"CSP\"}, {\"number\":13, \"name\":\"Tay\", \"classroom\":\"CSA\"}, {\"number\":4, \"name\":\"Yuri\", \"classroom\":\"CSA\"}]\n", "\n", - "Time taken for Merge Sort: 0 milliseconds\n", - "\n", "After Selection Sort:\n", "[{\"number\":2, \"name\":\"Abigail\", \"classroom\":\"CSP\"}, {\"number\":3, \"name\":\"Aditi\", \"classroom\":\"CSP\"}, {\"number\":5, \"name\":\"Aditya\", \"classroom\":\"CSA\"}, {\"number\":1, \"name\":\"Alara\", \"classroom\":\"CSP\"}, {\"number\":8, \"name\":\"Alex\", \"classroom\":\"CSA\"}, {\"number\":11, \"name\":\"Anthony\", \"classroom\":\"CSA\"}, {\"number\":14, \"name\":\"David\", \"classroom\":\"CSA\"}, {\"number\":12, \"name\":\"Emaad\", \"classroom\":\"CSA\"}, {\"number\":7, \"name\":\"Ethan T\", \"classroom\":\"CSA\"}, {\"number\":10, \"name\":\"James\", \"classroom\":\"CSA\"}, {\"number\":6, \"name\":\"Jishnu\", \"classroom\":\"CSA\"}, {\"number\":13, \"name\":\"Krishiv\", \"classroom\":\"CSA\"}, {\"number\":9, \"name\":\"Tanvi\", \"classroom\":\"CSP\"}, {\"number\":13, \"name\":\"Tay\", \"classroom\":\"CSA\"}, {\"number\":4, \"name\":\"Yuri\", \"classroom\":\"CSA\"}]\n", "\n", - "Time taken for Selection Sort: 0 milliseconds\n", - "\n", "After Quick Sort:\n", "[{\"number\":2, \"name\":\"Abigail\", \"classroom\":\"CSP\"}, {\"number\":3, \"name\":\"Aditi\", \"classroom\":\"CSP\"}, {\"number\":5, \"name\":\"Aditya\", \"classroom\":\"CSA\"}, {\"number\":1, \"name\":\"Alara\", \"classroom\":\"CSP\"}, {\"number\":8, \"name\":\"Alex\", \"classroom\":\"CSA\"}, {\"number\":11, \"name\":\"Anthony\", \"classroom\":\"CSA\"}, {\"number\":14, \"name\":\"David\", \"classroom\":\"CSA\"}, {\"number\":12, \"name\":\"Emaad\", \"classroom\":\"CSA\"}, {\"number\":7, \"name\":\"Ethan T\", \"classroom\":\"CSA\"}, {\"number\":10, \"name\":\"James\", \"classroom\":\"CSA\"}, {\"number\":6, \"name\":\"Jishnu\", \"classroom\":\"CSA\"}, {\"number\":13, \"name\":\"Krishiv\", \"classroom\":\"CSA\"}, {\"number\":9, \"name\":\"Tanvi\", \"classroom\":\"CSP\"}, {\"number\":13, \"name\":\"Tay\", \"classroom\":\"CSA\"}, {\"number\":4, \"name\":\"Yuri\", \"classroom\":\"CSA\"}]\n", "\n", - "Time taken for Quick Sort: 0 milliseconds\n", - "\n", "After Insertion Sort:\n", - "[{\"number\":2, \"name\":\"Abigail\", \"classroom\":\"CSP\"}, {\"number\":3, \"name\":\"Aditi\", \"classroom\":\"CSP\"}, {\"number\":5, \"name\":\"Aditya\", \"classroom\":\"CSA\"}, {\"number\":1, \"name\":\"Alara\", \"classroom\":\"CSP\"}, {\"number\":8, \"name\":\"Alex\", \"classroom\":\"CSA\"}, {\"number\":11, \"name\":\"Anthony\", \"classroom\":\"CSA\"}, {\"number\":14, \"name\":\"David\", \"classroom\":\"CSA\"}, {\"number\":12, \"name\":\"Emaad\", \"classroom\":\"CSA\"}, {\"number\":7, \"name\":\"Ethan T\", \"classroom\":\"CSA\"}, {\"number\":10, \"name\":\"James\", \"classroom\":\"CSA\"}, {\"number\":6, \"name\":\"Jishnu\", \"classroom\":\"CSA\"}, {\"number\":13, \"name\":\"Krishiv\", \"classroom\":\"CSA\"}, {\"number\":9, \"name\":\"Tanvi\", \"classroom\":\"CSP\"}, {\"number\":13, \"name\":\"Tay\", \"classroom\":\"CSA\"}, {\"number\":4, \"name\":\"Yuri\", \"classroom\":\"CSA\"}]\n", - "\n", - "Time taken for Insertion Sort: 0 milliseconds\n" + "[{\"number\":2, \"name\":\"Abigail\", \"classroom\":\"CSP\"}, {\"number\":3, \"name\":\"Aditi\", \"classroom\":\"CSP\"}, {\"number\":5, \"name\":\"Aditya\", \"classroom\":\"CSA\"}, {\"number\":1, \"name\":\"Alara\", \"classroom\":\"CSP\"}, {\"number\":8, \"name\":\"Alex\", \"classroom\":\"CSA\"}, {\"number\":11, \"name\":\"Anthony\", \"classroom\":\"CSA\"}, {\"number\":14, \"name\":\"David\", \"classroom\":\"CSA\"}, {\"number\":12, \"name\":\"Emaad\", \"classroom\":\"CSA\"}, {\"number\":7, \"name\":\"Ethan T\", \"classroom\":\"CSA\"}, {\"number\":10, \"name\":\"James\", \"classroom\":\"CSA\"}, {\"number\":6, \"name\":\"Jishnu\", \"classroom\":\"CSA\"}, {\"number\":13, \"name\":\"Krishiv\", \"classroom\":\"CSA\"}, {\"number\":9, \"name\":\"Tanvi\", \"classroom\":\"CSP\"}, {\"number\":13, \"name\":\"Tay\", \"classroom\":\"CSA\"}, {\"number\":4, \"name\":\"Yuri\", \"classroom\":\"CSA\"}]\n" ] } ], "source": [ "import java.util.*;\n", "\n", - "public class Algorithmic {\n", + "public class Algorhytmic {\n", "\n", - " // Class for objects that can be compared\n", " public static class Collectable implements Comparable {\n", " int number;\n", " String name;\n", " String classroom;\n", "\n", - " // Constructor\n", " public Collectable(int number, String name, String classroom) {\n", " this.number = number;\n", " this.name = name;\n", " this.classroom = classroom;\n", " }\n", "\n", - " // Override compareTo method for comparing by name\n", " @Override\n", " public int compareTo(Collectable other) {\n", " return this.name.compareToIgnoreCase(other.name);\n", " }\n", "\n", - " // Override toString method for custom display\n", " @Override\n", " public String toString() {\n", " return \"{\\\"number\\\":\" + number + \", \\\"name\\\":\\\"\" + name + \"\\\", \\\"classroom\\\":\\\"\" + classroom + \"\\\"}\";\n", " }\n", " }\n", "\n", - " // Class to handle sorting algorithms\n", " static class FlowerGroup {\n", " ArrayList members;\n", "\n", - " // Constructor\n", " public FlowerGroup(ArrayList members) {\n", " this.members = members;\n", " }\n", "\n", " // Bubble Sort, O(n^2) time complexity\n", - " public long bubbleSort() {\n", - " long startTime = System.currentTimeMillis();\n", - "\n", - " int n = members.size();\n", - " for (int i = 0; i < n - 1; i++) {\n", - " for (int j = 0; j < n - i - 1; j++) {\n", - " if (members.get(j).compareTo(members.get(j + 1)) > 0) {\n", - " Collectable temp = members.get(j);\n", + " public void bubbleSort() {\n", + " int n = members.size(); // takes the number of objects in the members arrayList\n", + " for (int i = 0; i < n - 1; i++) { // controls the number of passes\n", + " for (int j = 0; j < n - i - 1; j++) { // iterates over each pair\n", + " if (members.get(j).compareTo(members.get(j + 1)) > 0) { // compares j with j+1\n", + " Collectable temp = members.get(j); // swaps the elements if out of order\n", " members.set(j, members.get(j + 1));\n", " members.set(j + 1, temp);\n", " }\n", " }\n", " }\n", - "\n", - " long endTime = System.currentTimeMillis();\n", - " return endTime - startTime;\n", " }\n", "\n", " // Merge Sort, O(n log n) time complexity\n", - " public long mergeSort() {\n", - " long startTime = System.currentTimeMillis();\n", - " mergeSortHelper(0, members.size() - 1);\n", - " long endTime = System.currentTimeMillis();\n", - " return endTime - startTime;\n", + " public void mergeSort() {\n", + " mergeSortHelper(0, members.size() - 1); // calls the helper method\n", " }\n", "\n", - " // Helper method for Merge Sort\n", - " private void mergeSortHelper(int low, int high) {\n", + " private void mergeSortHelper(int low, int high) { // method that divides the arrays into smaller sub arrays \n", " if (low < high) {\n", " int mid = low + (high - low) / 2;\n", " mergeSortHelper(low, mid);\n", " mergeSortHelper(mid + 1, high);\n", - " merge(low, mid, high);\n", + " merge(low, mid, high); // merges the sub-arrays\n", " }\n", " }\n", "\n", - " // Merge method for Merge Sort\n", - " private void merge(int low, int mid, int high) {\n", - " ArrayList temp = new ArrayList<>(members);\n", - " int i = low, j = mid + 1, k = low;\n", + " private void merge(int low, int mid, int high) { // takes all the 3 different sub arrays\n", + " ArrayList temp = new ArrayList<>(members); // array list to hold values \n", + " int i = low, j = mid + 1, k = low; // index variables where k is merged list\n", " while (i <= mid && j <= high) {\n", - " if (temp.get(i).compareTo(temp.get(j)) <= 0) {\n", + " if (temp.get(i).compareTo(temp.get(j)) <= 0) { // compares low with high if hih is less, merges and increases the position of i\n", " members.set(k, temp.get(i));\n", " i++;\n", " } else {\n", - " members.set(k, temp.get(j));\n", + " members.set(k, temp.get(j)); // compares low with high if it is more, merges and increases the position of j\n", " j++;\n", " }\n", - " k++;\n", + " k++; // k's position is incremented regardless\n", " }\n", "\n", - " while (i <= mid) {\n", + " while (i <= mid) { // this conditional exists to moving all the remaining elements to the main members list\n", " members.set(k, temp.get(i));\n", " k++;\n", " i++;\n", " }\n", " }\n", "\n", - " // Selection Sort\n", - " public long selectionSort() {\n", - " long startTime = System.currentTimeMillis();\n", - "\n", - " int n = members.size();\n", - " for (int i = 0; i < n - 1; i++) {\n", - " int minIndex = i;\n", - " for (int j = i + 1; j < n; j++) {\n", - " if (members.get(j).compareTo(members.get(minIndex)) < 0) {\n", - " minIndex = j;\n", + " // Selection Sort, \n", + " public void selectionSort() {\n", + " int n = members.size(); // size of the list\n", + " for (int i = 0; i < n - 1; i++) { // loop for each element\n", + " int minIndex = i; // assume the minimum is the first unsorted element\n", + " for (int j = i + 1; j < n; j++) { // iterate through the rest of the list\n", + " if (members.get(j).compareTo(members.get(minIndex)) < 0) { // check if we found a smaller element\n", + " minIndex = j; // update the index of the smallest element\n", " }\n", " }\n", - " Collectable temp = members.get(minIndex);\n", + " Collectable temp = members.get(minIndex); // swap the smallest with the current element\n", " members.set(minIndex, members.get(i));\n", " members.set(i, temp);\n", " }\n", - "\n", - " long endTime = System.currentTimeMillis();\n", - " return endTime - startTime;\n", " }\n", "\n", " // Quick Sort\n", - " public long quickSort() {\n", - " long startTime = System.currentTimeMillis();\n", - " quickSortHelper(0, members.size() - 1);\n", - " long endTime = System.currentTimeMillis();\n", - " return endTime - startTime;\n", + " public void quickSort() {\n", + " quickSortHelper(0, members.size() - 1); // calls the helper method\n", " }\n", "\n", - " // Helper method for Quick Sort\n", " private void quickSortHelper(int low, int high) {\n", " if (low < high) {\n", " int pi = partition(low, high);\n", - " quickSortHelper(low, pi - 1);\n", - " quickSortHelper(pi + 1, high);\n", + " quickSortHelper(low, pi - 1); // recursive call on left sub-array\n", + " quickSortHelper(pi + 1, high); // recursive call on right sub-array\n", " }\n", " }\n", "\n", - " // Partition method for Quick Sort\n", " private int partition(int low, int high) {\n", - " Collectable pivot = members.get(high);\n", - " int i = low - 1;\n", + " Collectable pivot = members.get(high); // choose pivot as last element\n", + " int i = low - 1; // index of smaller element\n", " for (int j = low; j < high; j++) {\n", " if (members.get(j).compareTo(pivot) < 0) {\n", - " i++;\n", + " i++; // increment index of smaller element\n", " Collectable temp = members.get(i);\n", " members.set(i, members.get(j));\n", " members.set(j, temp);\n", @@ -268,13 +228,11 @@ " Collectable temp = members.get(i + 1);\n", " members.set(i + 1, members.get(high));\n", " members.set(high, temp);\n", - " return i + 1;\n", + " return i + 1; // return partitioning index\n", " }\n", "\n", " // Insertion Sort\n", - " public long insertionSort() {\n", - " long startTime = System.currentTimeMillis();\n", - "\n", + " public void insertionSort() {\n", " int n = members.size();\n", " for (int i = 1; i < n; ++i) {\n", " Collectable key = members.get(i);\n", @@ -285,12 +243,8 @@ " }\n", " members.set(j + 1, key);\n", " }\n", - "\n", - " long endTime = System.currentTimeMillis();\n", - " return endTime - startTime;\n", " }\n", "\n", - " // Override toString for custom display of FlowerGroup\n", " @Override\n", " public String toString() {\n", " StringBuilder result = new StringBuilder(\"[\");\n", @@ -305,11 +259,10 @@ " }\n", " }\n", "\n", - " // Main method for testing\n", - " public static void main(String[] args) {\n", + " public static void main(String[] args) { // setting up tester data\n", "\n", - " // Creating test data\n", " ArrayList members = new ArrayList<>();\n", + "\n", " members.add(new Collectable(1, \"Alara\", \"CSP\"));\n", " members.add(new Collectable(2, \"Abigail\", \"CSP\"));\n", " members.add(new Collectable(3, \"Aditi\", \"CSP\"));\n", @@ -333,44 +286,46 @@ " System.out.println(flowerGroup.toString());\n", "\n", " // Bubble Sort\n", - " long bubbleTime = flowerGroup.bubbleSort();\n", + " flowerGroup.bubbleSort();\n", " System.out.println(\"\\nAfter Bubble Sort:\");\n", " System.out.println(flowerGroup.toString());\n", - " System.out.println(\"\\nTime taken for Bubble Sort: \" + bubbleTime + \" milliseconds\");\n", "\n", " // Merge Sort\n", - " long mergeTime = flowerGroup.mergeSort();\n", + " flowerGroup = new FlowerGroup(members); // Re-initialize for fresh sort\n", + " flowerGroup.mergeSort();\n", " System.out.println(\"\\nAfter Merge Sort:\");\n", " System.out.println(flowerGroup.toString());\n", - " System.out.println(\"\\nTime taken for Merge Sort: \" + mergeTime + \" milliseconds\");\n", "\n", " // Selection Sort\n", - " long selectionTime = flowerGroup.selectionSort();\n", + " flowerGroup = new FlowerGroup(members); // Re-initialize for fresh sort\n", + " flowerGroup.selectionSort();\n", " System.out.println(\"\\nAfter Selection Sort:\");\n", " System.out.println(flowerGroup.toString());\n", - " System.out.println(\"\\nTime taken for Selection Sort: \" + selectionTime + \" milliseconds\");\n", "\n", " // Quick Sort\n", - " long quickTime = flowerGroup.quickSort();\n", + " flowerGroup = new FlowerGroup(members); // Re-initialize for fresh sort\n", + " flowerGroup.quickSort();\n", " System.out.println(\"\\nAfter Quick Sort:\");\n", " System.out.println(flowerGroup.toString());\n", - " System.out.println(\"\\nTime taken for Quick Sort: \" + quickTime + \" milliseconds\");\n", "\n", " // Insertion Sort\n", - " long insertionTime = flowerGroup.insertionSort();\n", + " flowerGroup = new FlowerGroup(members); // Re-initialize for fresh sort\n", + " flowerGroup.insertionSort();\n", " System.out.println(\"\\nAfter Insertion Sort:\");\n", " System.out.println(flowerGroup.toString());\n", - " System.out.println(\"\\nTime taken for Insertion Sort: \" + insertionTime + \" milliseconds\");\n", " }\n", "}\n", "\n", - "Algorithmic.main(null)" + "Algorhytmic.main(null)" ] }, { "cell_type": "markdown", "metadata": {}, - "source": [] + "source": [ + "# Merges Demonstration!\n", + "[link](https://docs.google.com/drawings/d/16AEcV2jWKaVqn1Ayta05gLyu-Y9SU78amU_NotPXRSQ/edit?usp=sharing)" + ] } ], "metadata": { @@ -383,7 +338,7 @@ "codemirror_mode": "java", "file_extension": ".jshell", "mimetype": "text/x-java-source", - "name": "Java", + "name": "java", "pygments_lexer": "java", "version": "17.0.9+9-Ubuntu-120.04" } diff --git a/_notebooks/2024-04-22-unit-7-student.ipynb b/_notebooks/2024-04-22-unit-7-student.ipynb index e8e93ae..268c1ce 100644 --- a/_notebooks/2024-04-22-unit-7-student.ipynb +++ b/_notebooks/2024-04-22-unit-7-student.ipynb @@ -50,6 +50,13 @@ "||Need an import statement|" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Arraylist doesnt" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -74,7 +81,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "ArrayList objects are created in the same fashion as other object classes. The primary difference with ArrayLists is that the element type of the ArrayList must be specified using angled bracket <>. In this example, E represents the data type that will be used in the ArrayList. This notation is called the ________ type.\n", + "ArrayList objects are created in the same fashion as other object classes. The primary difference with ArrayLists is that the element type of the ArrayList must be specified using angled bracket <>. In this example, E represents the data type that will be used in the ArrayList. This notation is called the **generic** type.\n", "
\n", "This can be replaced by an object data type:" ] @@ -554,7 +561,7 @@ "\n", "- Deleting elements during a traversal of an Arraylist requires special techniques to avoid skiping elements.\n", "\n", - "- The indicies of an Arraylist start at ___; If you try to use any value lower than 0, you will get an ______ error" + "- The indicies of an Arraylist start at 0; If you try to use any value lower than 0, you will get an array index exception error" ] }, { diff --git a/images/alg1.png b/images/alg1.png new file mode 100644 index 0000000..1df785a Binary files /dev/null and b/images/alg1.png differ diff --git a/images/alg2.png b/images/alg2.png new file mode 100644 index 0000000..98d7824 Binary files /dev/null and b/images/alg2.png differ diff --git a/images/alg3.png b/images/alg3.png new file mode 100644 index 0000000..fe567fa Binary files /dev/null and b/images/alg3.png differ diff --git a/images/alg4.png b/images/alg4.png new file mode 100644 index 0000000..1b39074 Binary files /dev/null and b/images/alg4.png differ diff --git a/images/alg5.png b/images/alg5.png new file mode 100644 index 0000000..fc2a475 Binary files /dev/null and b/images/alg5.png differ