This was the code given by our professor. Unfortunately, this code asks for a certain integers to be entered. This is what we want, the program will ask how many elements should be sorted then it will randomly generate a number form 1 to 1000. After generating, it will be sorted using Merge Sort. We need it to be animated as well. Can someone help us, please? We are still beginners we really need your help. Thank you very much!
import java.util.Scanner;
public class MergeSort{
public static int[] divide(int[] arr, int start, int end){
if(start!=end){
int mid = (start + end)/2;
arr = divide(arr, start, mid);
arr = divide(arr, mid+1, end);
arr = conquer(arr, start, mid, end);
}
return arr;
}
public static int[] conquer(int[]arr, int start, int mid, int end){
int[] temp = new int[arr.length];
for(int i=0; i<arr.length; i++)
temp[i] = arr[i];
int left = start, right = mid+1, pointer = start;
while(left<=mid && right<=end){
if(arr[left]<arr[right]){
temp[pointer] = arr[left];
++left;
}
else{
temp[pointer] = arr[right];
++right;
}
pointer++;
}
while(left<=mid){
temp[pointer] = arr[left];
left++;
pointer++;
}
return temp;
}
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
System.out.print("Enter size: ");
int size = sc.nextInt();
int[]data = new int[size];
for(int i=0; i<size; i++){
System.out.print("Enter element: ");
data[i] = sc.nextInt();
}
data = divide(data, 0, data.length-1);
System.out.print("Sorted: {");
for(int i=0; i<size; i++){
if(i>0){
System.out.print(", ");
}
System.out.print(data[i]);
}
System.out.println("}");
}
}
Aucun commentaire:
Enregistrer un commentaire