From d82d5912bd8538551bea5665b3d6db3a12bffe38 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 19:07:40 +0000 Subject: [PATCH 1/3] Setting up GitHub Classroom Feedback From 7e6ee9d6d878588fdb38ca54156e7e31c5636f5b Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 19:07:43 +0000 Subject: [PATCH 2/3] add online IDE url --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f88a51..157d6e7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![Open in Codespaces](https://classroom.github.com/assets/launch-codespace-2972f46106e565e64193e422d61a12cf1da4916b45550586e14ef0a7c637dd04.svg)](https://classroom.github.com/open-in-codespaces?assignment_repo_id=18806281) # Lab 15 - Selection Sort + Array Methods **Implement the Selection Sort Algorithm Using Array Methods** From d4bf675e8fa55032ace9e695e9d74ec8d19cc8c7 Mon Sep 17 00:00:00 2001 From: sageyosick Date: Fri, 21 Mar 2025 20:30:31 +0000 Subject: [PATCH 3/3] selection sort array methods --- ArrayMethods.java | 48 ++++++++++++++++++++++++++++++++++++++--------- Main.java | 27 +++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 10 deletions(-) diff --git a/ArrayMethods.java b/ArrayMethods.java index 1c0c553..61ad55c 100644 --- a/ArrayMethods.java +++ b/ArrayMethods.java @@ -33,31 +33,61 @@ public class ArrayMethods /**DESCRIPTION: */ public static String arrayString(int[] a) { - return ""; //STUB to keep compiler happy + String result = "{ " + a[0]; + //return ""; //STUB to keep compiler happy + for(int i = 1; i < a.length; i++) { + result += ", " + a[i]; + } + + result += " }"; + + return result; } /**DESCRIPTION: */ public static void swap(int[] array, int a, int b) { - + int temp = array[a]; + array[a] = array[b]; + array[b] = temp; } - - /**DESCRIPTION: */ + + /**DESCRIPTION: */ public static int indexOfMin(int[] array, int startIndex) { - return 0; //STUB to keep compiler happy + int minValue = array[startIndex]; + int minIndex = startIndex; + + for(int i = startIndex+1; i < array.length; i++) { + if(minValue > array[i]) { + minValue = array[i]; + minIndex = i; + } + + } + return minIndex; + } - /**DESCRIPTION: */ + /**DESCRIPTION: */ public static void reverse(int[] array) { - + for(int i = 0; i < array.length/2; i++) { + ArrayMethods.swap(array, i, array.length-1-i); + } + } - /**DESCRIPTION: */ + /**DESCRIPTION: */ public static void selectionSort(int[] array) { + for(int i = 0; i < array.length-1; i++) { + int indexMinValue = ArrayMethods.indexOfMin(array, i); + ArrayMethods.swap(array, i, indexMinValue); + + } + } -} \ No newline at end of file +} diff --git a/Main.java b/Main.java index 3990323..c550fdd 100644 --- a/Main.java +++ b/Main.java @@ -9,6 +9,31 @@ public class Main { public static void main(String[] args) { + int[] values = {12, 16, 26, 42, 53, 77, 84}; + + System.out.println("Test :" + ArrayMethods.arrayString(values)); + + ArrayMethods.swap(values, 0, 6); + System.out.println("Test after swap (12and84):" + ArrayMethods.arrayString(values)); + + int[] numbers = {42, 16, 84, 12, 77, 26, 53}; + int minIndex1 = ArrayMethods.indexOfMin(numbers, 0); + int minIndex2 = ArrayMethods.indexOfMin(numbers, 4); + + System.out.println("TEST: min indices should be 3 and 5, we got: " + minIndex1 + " and " + minIndex2); + + System.out.println("Test before reversal:" + ArrayMethods.arrayString(numbers)); + + ArrayMethods.reverse(numbers); + + System.out.println("Test after reversal:" + ArrayMethods.arrayString(numbers)); + + System.out.println("Test before sorting:" + ArrayMethods.arrayString(numbers)); + + ArrayMethods.selectionSort(numbers); + + System.out.println("Test after sorting:" + ArrayMethods.arrayString(numbers)); } -} \ No newline at end of file +} +