Salve a tutti
ho un programma che mi chiede, dopo aver inserito una serie di numeri e averli memorizzati in un array, di ordinarli tramite un metodo Merge Sort.
Il codice che ho scritto è il seguente;
package demo;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;
public class Esercizio {
public static void main(String[] args) {
// creo un oggetto Scanner per leggere input da tastiera
Scanner sc = new Scanner(new InputStreamReader(System.in));
String line;
int num;
ArrayList<Integer> array = new ArrayList<Integer>();
// ciclo potenzialmente infinito
while(1 != 0) {
System.out.print("Inserire numero: ");
// leggo la riga inserita dall'utente
line = sc.nextLine();
// se la riga e' vuota allora smetto di leggere
if(line.equals("")) break;
// altrimenti converto quello che e' stato inserito in un numero e lo inserisco in un array
num = Integer.parseInt(line);
array.add(num);
// ripeto all'utente il numero che ha appena inserito
System.out.println("Hai inserito " + num);
}
System.out.println("Terminato inserimento di numeri");
sc.close();
System.out.println("hai inserito i seguenti numeri: " + array.toString());
}
Fin qui tutto bene. poi devo ordinare la lista tramite metodo Merge Sort e qui iniziano i problemi. ho iniziato a scrivere il metodo ma mi sono bloccato e non riesco ad andare avanti.
ho scritto:
public void MergeSorter (int[] array) {
if (array.length <=1) return;
int [] first = new int[array.length/2];
int [] second = new int [array.length - first.length];
for (int i=0; i<first.length; i++) {first = array;
for (int i=0; i<second.length; i++) {
second = array[first.length +i];
}
non riesco ad andare avanti.Qualcuno di buon cuore che mi aiuterebbe? Grazie mille