mirror of https://github.com/evanferrao/dsa
uncomment correct code
This commit is contained in:
parent
2dd2bd9cbd
commit
296ac7e47a
|
|
@ -1,96 +1,9 @@
|
||||||
// write a code of mergesort using function in java
|
// write a code of mergesort using function in java
|
||||||
|
|
||||||
// import java.util.Scanner;
|
|
||||||
// public class MergeSort{
|
|
||||||
// // use notation beginning, mid and end
|
|
||||||
|
|
||||||
// public static void main(String[] args){
|
|
||||||
// Scanner sc = new Scanner(System.in);
|
|
||||||
// System.out.println("Enter the size of the array: ");
|
|
||||||
// int n = sc.nextInt();
|
|
||||||
// int[] arr = new int[n];
|
|
||||||
// System.out.println("Enter the elements of the array: ");
|
|
||||||
// for(int i=0; i<n; i++){
|
|
||||||
// arr[i] = sc.nextInt();
|
|
||||||
// }
|
|
||||||
// mergeSort(arr, 0, n-1);
|
|
||||||
// System.out.println("The sorted array is: ");
|
|
||||||
// for(int i=0; i<n; i++){
|
|
||||||
// System.out.print(arr[i] + " ");
|
|
||||||
// }
|
|
||||||
// sc.close();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// static void mergeSort(int arr[], int beginning, int end){
|
|
||||||
// if(beginning < end){
|
|
||||||
// // find the middle point
|
|
||||||
// int mid = (beginning + end) / 2;
|
|
||||||
|
|
||||||
// // sort first and second halves
|
|
||||||
// mergeSort(arr, beginning, mid);
|
|
||||||
// mergeSort(arr, mid + 1, end);
|
|
||||||
|
|
||||||
// // merge the sorted halves
|
|
||||||
// merge(arr, beginning, mid, end);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// static void merge(int arr[], int beginning, int mid, int end){
|
|
||||||
// // find the size of two subarrays to be merged
|
|
||||||
// int n1 = mid - beginning + 1;
|
|
||||||
// int n2 = end - mid;
|
|
||||||
|
|
||||||
// // 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] = arr[beginning + i];
|
|
||||||
// }
|
|
||||||
// for(int j = 0; j < n2; j++){
|
|
||||||
// R[j] = arr[mid + 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 = beginning;
|
|
||||||
// while(i < n1 && j < n2){
|
|
||||||
// if(L[i] <= R[j]){
|
|
||||||
// arr[k] = L[i];
|
|
||||||
// i++;
|
|
||||||
// }else{
|
|
||||||
// arr[k] = R[j];
|
|
||||||
// j++;
|
|
||||||
// }
|
|
||||||
// k++;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // copy remaining elements of L[] if any
|
|
||||||
// while(i < n1){
|
|
||||||
// arr[k] = L[i];
|
|
||||||
// i++;
|
|
||||||
// k++;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // copy remaining elements of R[] if any
|
|
||||||
// while(j < n2){
|
|
||||||
// arr[k] = R[j];
|
|
||||||
// j++;
|
|
||||||
// k++;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// can i get the printed output at every iteration of the merge sort algorithm?
|
|
||||||
// Yes, you can get the printed output at every iteration of the merge sort algorithm.
|
|
||||||
// rewrite the code of mergesort using function in java and print the array after each iteration for better understanding
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
class MergeSort{
|
public class MergeSort{
|
||||||
// make sure to print the array after each iteration for better understanding
|
// use notation beginning, mid and end
|
||||||
|
|
||||||
public static void main(String[] args){
|
public static void main(String[] args){
|
||||||
Scanner sc = new Scanner(System.in);
|
Scanner sc = new Scanner(System.in);
|
||||||
System.out.println("Enter the size of the array: ");
|
System.out.println("Enter the size of the array: ");
|
||||||
|
|
@ -107,12 +20,7 @@ class MergeSort{
|
||||||
}
|
}
|
||||||
sc.close();
|
sc.close();
|
||||||
}
|
}
|
||||||
static void printArray(int[] arr){
|
|
||||||
int n = arr.length;
|
|
||||||
for(int k=0;k<n;k++){
|
|
||||||
System.out.print(arr[k]+" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static void mergeSort(int arr[], int beginning, int end){
|
static void mergeSort(int arr[], int beginning, int end){
|
||||||
if(beginning < end){
|
if(beginning < end){
|
||||||
// find the middle point
|
// find the middle point
|
||||||
|
|
@ -158,9 +66,6 @@ class MergeSort{
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
k++;
|
k++;
|
||||||
printArray(arr);
|
|
||||||
// print the values of i, j and k for better understanding
|
|
||||||
System.out.println(" for i = "+i+" j = "+j+" k = "+k);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy remaining elements of L[] if any
|
// copy remaining elements of L[] if any
|
||||||
|
|
@ -168,9 +73,6 @@ class MergeSort{
|
||||||
arr[k] = L[i];
|
arr[k] = L[i];
|
||||||
i++;
|
i++;
|
||||||
k++;
|
k++;
|
||||||
printArray(arr);
|
|
||||||
// print the values of i, j and k for better understanding
|
|
||||||
System.out.println(" for i = "+i+" j = "+j+" k = "+k);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy remaining elements of R[] if any
|
// copy remaining elements of R[] if any
|
||||||
|
|
@ -178,9 +80,7 @@ class MergeSort{
|
||||||
arr[k] = R[j];
|
arr[k] = R[j];
|
||||||
j++;
|
j++;
|
||||||
k++;
|
k++;
|
||||||
printArray(arr);
|
|
||||||
// print the values of i, j and k for better understanding
|
|
||||||
System.out.println(" for i = "+i+" j = "+j+" k = "+k);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue