From bc4a969470b3319a32108e00e29e9eea023b7de6 Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 11:54:01 +0530 Subject: [PATCH 1/9] Create Selection Sort.java --- .../java/sortalgorithms/Selection Sort.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/sortalgorithms/Selection Sort.java diff --git a/src/main/java/sortalgorithms/Selection Sort.java b/src/main/java/sortalgorithms/Selection Sort.java new file mode 100644 index 0000000..6bd2284 --- /dev/null +++ b/src/main/java/sortalgorithms/Selection Sort.java @@ -0,0 +1,32 @@ +public class SelectionSortExample { + public static void selectionSort(int[] arr){ + for (int i = 0; i < arr.length - 1; i++) + { + int index = i; + for (int j = i + 1; j < arr.length; j++){ + if (arr[j] < arr[index]){ + index = j;//searching for lowest index + } + } + int smallerNumber = arr[index]; + arr[index] = arr[i]; + arr[i] = smallerNumber; + } + } + + public static void main(String a[]){ + int[] arr1 = {9,14,3,2,43,11,58,22}; + System.out.println("Before Selection Sort"); + for(int i:arr1){ + System.out.print(i+" "); + } + System.out.println(); + + selectionSort(arr1);//sorting array using selection sort + + System.out.println("After Selection Sort"); + for(int i:arr1){ + System.out.print(i+" "); + } + } +} From bb9a99df1def0cdfeb5abd824536ef9c884199e5 Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 12:24:52 +0530 Subject: [PATCH 2/9] Update Sort.java --- src/main/java/sortalgorithms/Sort.java | 44 ++++++++++++++++++++------ 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/src/main/java/sortalgorithms/Sort.java b/src/main/java/sortalgorithms/Sort.java index 6cfc0c6..7eca81a 100644 --- a/src/main/java/sortalgorithms/Sort.java +++ b/src/main/java/sortalgorithms/Sort.java @@ -6,23 +6,23 @@ public class Sort { private int[] inputArray; - public int[] bubbleSort(int[] inputArray){ + public int[] bubbleSort(int[] inputArray) { - int size=inputArray.length-1; - int temp=-1; + int size = inputArray.length - 1; + int temp = -1; - if(size==1) + if (size == 1) return inputArray; - for(int i=0;i<=size;i++){ + for (int i = 0; i <= size; i++) { - for(int j=0;jinputArray[j+1]){ + if (inputArray[j] > inputArray[j + 1]) { - temp=inputArray[j+1]; - inputArray[j+1]=inputArray[j]; - inputArray[j]=temp; + temp = inputArray[j + 1]; + inputArray[j + 1] = inputArray[j]; + inputArray[j] = temp; } @@ -35,6 +35,30 @@ public int[] bubbleSort(int[] inputArray){ } + + public int[] selectionSort(int[] inputArray) { + + int size = inputArray.length - 1; + + if (size == 1) + return inputArray; + + for (int i = 0; i < size; i++) { + int index = i; + for (int j = i + 1; j < size; j++) { + if (inputArray[j] < inputArray[index]) { + index = j;//searching for lowest index + } + } + int smallerNumber = inputArray[index]; + inputArray[index] = inputArray[i]; + inputArray[i] = smallerNumber; + } + return inputArray; + + } + + public Sort(int[] inputArray) { this.inputArray = inputArray; } From 4082acd7c762b76695ae757f41eb1fcfc57bcc1f Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 12:26:50 +0530 Subject: [PATCH 3/9] Delete Selection Sort.java added selection sort class as method --- .../java/sortalgorithms/Selection Sort.java | 32 ------------------- 1 file changed, 32 deletions(-) delete mode 100644 src/main/java/sortalgorithms/Selection Sort.java diff --git a/src/main/java/sortalgorithms/Selection Sort.java b/src/main/java/sortalgorithms/Selection Sort.java deleted file mode 100644 index 6bd2284..0000000 --- a/src/main/java/sortalgorithms/Selection Sort.java +++ /dev/null @@ -1,32 +0,0 @@ -public class SelectionSortExample { - public static void selectionSort(int[] arr){ - for (int i = 0; i < arr.length - 1; i++) - { - int index = i; - for (int j = i + 1; j < arr.length; j++){ - if (arr[j] < arr[index]){ - index = j;//searching for lowest index - } - } - int smallerNumber = arr[index]; - arr[index] = arr[i]; - arr[i] = smallerNumber; - } - } - - public static void main(String a[]){ - int[] arr1 = {9,14,3,2,43,11,58,22}; - System.out.println("Before Selection Sort"); - for(int i:arr1){ - System.out.print(i+" "); - } - System.out.println(); - - selectionSort(arr1);//sorting array using selection sort - - System.out.println("After Selection Sort"); - for(int i:arr1){ - System.out.print(i+" "); - } - } -} From f092adf6982e73a23557402ffbfa2acea54afa17 Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 12:34:26 +0530 Subject: [PATCH 4/9] Update Test.java --- src/main/java/sortalgorithms/Test.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/sortalgorithms/Test.java b/src/main/java/sortalgorithms/Test.java index 7607fc7..5cb2f91 100644 --- a/src/main/java/sortalgorithms/Test.java +++ b/src/main/java/sortalgorithms/Test.java @@ -11,8 +11,7 @@ public static void main(String[] args) { Sort doSort=new Sort(inputs); System.out.println(Arrays.toString(doSort.bubbleSort(inputs))); - - + System.out.println(Arrays.toString(doSort.selectionSort(inputs))); From 72bfeefd2f62ad479533c5381f2b12e5aadc5aad Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 12:54:26 +0530 Subject: [PATCH 5/9] added merge sort --- src/main/java/sortalgorithms/Sort.java | 75 ++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/src/main/java/sortalgorithms/Sort.java b/src/main/java/sortalgorithms/Sort.java index 7eca81a..4e1531f 100644 --- a/src/main/java/sortalgorithms/Sort.java +++ b/src/main/java/sortalgorithms/Sort.java @@ -59,6 +59,79 @@ public int[] selectionSort(int[] inputArray) { } + /* Java program for Merge Sort */ + // Merges two subarrays of inputArray[]; + // First subarray is inputArray[l..m] + // Second subarray is inputArray[m+1..r] + + public int[] merge(int[] inputArray, int l, int m, int r) { + // Find sizes of two subarrays to be merged + int n1 = m - l + 1; + int n2 = r - m; + + /* Create temp arrays */ + int L[] = new int[n1]; + int R[] = new int[n2]; + + /*Copy data to temp arrays*/ + for (int i = 0; i < n1; ++i) + L[i] = inputArray[l + i]; + for (int j = 0; j < n2; ++j) + R[j] = inputArray[m + 1 + j]; + + + /* Merge the temp arrays */ + + // Initial indexes of first and second subarrays + int i = 0, j = 0; + + // Initial index of merged subarray array + int k = l; + while (i < n1 && j < n2) { + if (L[i] <= R[j]) { + inputArray[k] = L[i]; + i++; + } else { + inputArray[k] = R[j]; + j++; + } + k++; + } + + /* Copy remaining elements of L[] if any */ + while (i < n1) { + inputArray[k] = L[i]; + i++; + k++; + } + + /* Copy remaining elements of R[] if any */ + while (j < n2) { + inputArray[k] = R[j]; + j++; + k++; + } + return inputArray; + + } + + + // Main function that sorts inputArray[l..r] using + // merge() + void sort(int[] inputArray, int l, int r) { + if (l < r) { + // Find the middle point + int m = (l + r) / 2; + + // Sort first and second halves + sort(inputArray, l, m); + sort(inputArray, m + 1, r); + + // Merge the sorted halves + merge(inputArray, l, m, r); + } + } + public Sort(int[] inputArray) { this.inputArray = inputArray; } @@ -70,4 +143,6 @@ public int[] getInputArray() { public void setInputArray(int[] inputArray) { this.inputArray = inputArray; } + + } From 61568328f592b686358a6437fce7789e1643e42f Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 12:56:05 +0530 Subject: [PATCH 6/9] added mergeSort to test --- src/main/java/sortalgorithms/Test.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/sortalgorithms/Test.java b/src/main/java/sortalgorithms/Test.java index 5cb2f91..99c55f2 100644 --- a/src/main/java/sortalgorithms/Test.java +++ b/src/main/java/sortalgorithms/Test.java @@ -12,6 +12,7 @@ public static void main(String[] args) { Sort doSort=new Sort(inputs); System.out.println(Arrays.toString(doSort.bubbleSort(inputs))); System.out.println(Arrays.toString(doSort.selectionSort(inputs))); + System.out.println(Arrays.toString(doSort.mergeSort(inputs))); From a95bb83ec9c1fb2490a1891dd777789ffe2c487c Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 14:22:50 +0530 Subject: [PATCH 7/9] added insertion sort --- src/main/java/sortalgorithms/Sort.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/sortalgorithms/Sort.java b/src/main/java/sortalgorithms/Sort.java index 4e1531f..f98f19a 100644 --- a/src/main/java/sortalgorithms/Sort.java +++ b/src/main/java/sortalgorithms/Sort.java @@ -57,6 +57,26 @@ public int[] selectionSort(int[] inputArray) { return inputArray; } + + public int[] insertionSort(int[] inputArray) { + + int size = inputArray.length - 1; + if (size == 1) + return inputArray; + for (int i = 1; i < size; ++i) { + int key = inputArray[i]; + int j = i - 1; + + + while (j >= 0 && inputArray[j] > key) { + inputArray[j + 1] = inputArray[j]; + j = j - 1; + } + inputArray[j + 1] = key; + } + return inputArray; + + } /* Java program for Merge Sort */ From 3cbb94ce1bfbbaa17f4014fc90ff12abc7c9b27d Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 14:23:47 +0530 Subject: [PATCH 8/9] added insertion sort test --- src/main/java/sortalgorithms/Test.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/sortalgorithms/Test.java b/src/main/java/sortalgorithms/Test.java index 99c55f2..c0a887b 100644 --- a/src/main/java/sortalgorithms/Test.java +++ b/src/main/java/sortalgorithms/Test.java @@ -13,6 +13,8 @@ public static void main(String[] args) { System.out.println(Arrays.toString(doSort.bubbleSort(inputs))); System.out.println(Arrays.toString(doSort.selectionSort(inputs))); System.out.println(Arrays.toString(doSort.mergeSort(inputs))); + System.out.println(Arrays.toString(doSort.insertionSort(inputs))); + From 10cbebccea7a5f3e662c20036bac26fa7ecbbea2 Mon Sep 17 00:00:00 2001 From: Navin Nayak <37023798+NayakNavin@users.noreply.github.com> Date: Tue, 8 Oct 2019 14:29:49 +0530 Subject: [PATCH 9/9] Update Sort.java --- src/main/java/sortalgorithms/Sort.java | 39 +++++++++++++++----------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/src/main/java/sortalgorithms/Sort.java b/src/main/java/sortalgorithms/Sort.java index f98f19a..424de44 100644 --- a/src/main/java/sortalgorithms/Sort.java +++ b/src/main/java/sortalgorithms/Sort.java @@ -79,12 +79,32 @@ public int[] insertionSort(int[] inputArray) { } + + + // Main function that sorts inputArray[l..r] using + // merge() + public int[] mergeSort(int[] inputArray, int l, int r) { + if (l < r) { + // Find the middle point + int m = (l + r) / 2; + + // Sort first and second halves + mergeSort(inputArray, l, m); + mergeSort(inputArray, m + 1, r); + + // Merge the sorted halves + merge(inputArray, l, m, r); + } + return inputArray; + } + + /* Java program for Merge Sort */ // Merges two subarrays of inputArray[]; // First subarray is inputArray[l..m] // Second subarray is inputArray[m+1..r] - public int[] merge(int[] inputArray, int l, int m, int r) { + public void merge(int[] inputArray, int l, int m, int r) { // Find sizes of two subarrays to be merged int n1 = m - l + 1; int n2 = r - m; @@ -131,26 +151,11 @@ public int[] merge(int[] inputArray, int l, int m, int r) { j++; k++; } - return inputArray; } - // Main function that sorts inputArray[l..r] using - // merge() - void sort(int[] inputArray, int l, int r) { - if (l < r) { - // Find the middle point - int m = (l + r) / 2; - - // Sort first and second halves - sort(inputArray, l, m); - sort(inputArray, m + 1, r); - - // Merge the sorted halves - merge(inputArray, l, m, r); - } - } + public Sort(int[] inputArray) { this.inputArray = inputArray;