mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-25 13:34:54 +08:00
docs: update the whole repository
* fix some bugs * delete duplicate files * format code
This commit is contained in:
@ -5,22 +5,18 @@ import static Sorts.SortUtils.print;
|
||||
/**
|
||||
* This method implements the Generic Merge Sort
|
||||
*
|
||||
*
|
||||
* @author Varun Upadhyay (https://github.com/varunu28)
|
||||
* @author Podshivalov Nikita (https://github.com/nikitap492)
|
||||
*
|
||||
*
|
||||
* @see SortAlgorithm
|
||||
*
|
||||
*/
|
||||
|
||||
class MergeSort implements SortAlgorithm {
|
||||
|
||||
|
||||
/**
|
||||
* This method implements the Generic Merge Sort
|
||||
*
|
||||
* @param unsorted the array which should be sorted
|
||||
* @param <T> Comparable class
|
||||
* @param <T> Comparable class
|
||||
* @return sorted array
|
||||
*/
|
||||
@Override
|
||||
@ -32,18 +28,17 @@ class MergeSort implements SortAlgorithm {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param arr The array to be sorted
|
||||
* @param temp The copy of the actual array
|
||||
* @param left The first index of the array
|
||||
* @param arr The array to be sorted
|
||||
* @param temp The copy of the actual array
|
||||
* @param left The first index of the array
|
||||
* @param right The last index of the array
|
||||
* Recursively sorts the array in increasing order
|
||||
* Recursively sorts the array in increasing order
|
||||
**/
|
||||
private static <T extends Comparable<T>> void doSort(T[] arr, T[] temp, int left, int right) {
|
||||
private static <T extends Comparable<T>> void doSort(T[] arr, T[] temp, int left, int right) {
|
||||
if (left < right) {
|
||||
int mid = left + (right - left) / 2;
|
||||
doSort(arr, temp, left, mid);
|
||||
doSort(arr, temp,mid + 1, right);
|
||||
doSort(arr, temp, mid + 1, right);
|
||||
merge(arr, temp, left, mid, right);
|
||||
}
|
||||
|
||||
@ -52,27 +47,26 @@ class MergeSort implements SortAlgorithm {
|
||||
/**
|
||||
* This method implements the merge step of the merge sort
|
||||
*
|
||||
* @param arr The array to be sorted
|
||||
* @param temp The copy of the actual array
|
||||
* @param left The first index of the array
|
||||
* @param mid The middle index of the array
|
||||
* @param arr The array to be sorted
|
||||
* @param temp The copy of the actual array
|
||||
* @param left The first index of the array
|
||||
* @param mid The middle index of the array
|
||||
* @param right The last index of the array
|
||||
* merges two parts of an array in increasing order
|
||||
* merges two parts of an array in increasing order
|
||||
**/
|
||||
|
||||
private static <T extends Comparable<T>> void merge(T[] arr, T[] temp, int left, int mid, int right) {
|
||||
System.arraycopy(arr, left, temp, left, right - left + 1);
|
||||
|
||||
|
||||
int i= left;
|
||||
int i = left;
|
||||
int j = mid + 1;
|
||||
int k = left;
|
||||
|
||||
while (i <= mid && j <= right) {
|
||||
if (temp[i].compareTo(temp[j]) <= 0) {
|
||||
arr[k++] = temp[i++];
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
arr[k++] = temp[j++];
|
||||
}
|
||||
}
|
||||
@ -81,9 +75,9 @@ class MergeSort implements SortAlgorithm {
|
||||
arr[k++] = temp[i++];
|
||||
}
|
||||
|
||||
while (j <= right) {
|
||||
arr[k++] = temp[j++];
|
||||
}
|
||||
while (j <= right) {
|
||||
arr[k++] = temp[j++];
|
||||
}
|
||||
}
|
||||
|
||||
// Driver program
|
||||
@ -98,7 +92,7 @@ class MergeSort implements SortAlgorithm {
|
||||
print(arr);
|
||||
|
||||
// String Inpu
|
||||
String[] stringArray = {"c", "a", "e", "b","d"};
|
||||
String[] stringArray = {"c", "a", "e", "b", "d"};
|
||||
mergeSort.sort(stringArray);
|
||||
//Output => a b c d e
|
||||
print(stringArray);
|
||||
|
Reference in New Issue
Block a user