Объединить блок-схему сортировки и руководство - PullRequest
0 голосов
/ 13 октября 2018

Я сейчас работаю с сортировкой слиянием.Я пытаюсь написать программу, которая читает файл, полный чисел, спрашивает пользователя, хотят ли они отсортировать по возрастанию, по убыванию или в обоих.а затем напишите другой файл.Я дошел до того, что смог прочитать файл и отсортировать его в порядке возрастания, но ударился об стену и не знал, что делать дальше.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class mergesortapp{

    public void mergeSort(Integer[] array, int lo, int n) {
        int low = lo;
        int high = n;
        if (low >= high) {
            return;
        }

        int middle = (low + high) / 2;
        mergeSort(array, low, middle);
        mergeSort(array, middle + 1, high);
        int end_low = middle;
        int start_high = middle + 1;
        while ((lo <= end_low) && (start_high <= high)) {
            if (array[low] < array[start_high]) {
                low++;
            } else {
                int Temp = array[start_high];
                for (int k = start_high - 1; k >= low; k--) {
                    array[k + 1] = array[k];
                }
                array[low] = Temp;
                low++;
                end_low++;
                start_high++;
            }
        }
    }

    public static void main(String[] args) throws NumberFormatException, IOException {
    Final pb = new Final();
        try {
            BufferedReader br = new BufferedReader(new FileReader("/TextFile"));
            List<Integer> lines = new ArrayList<Integer>();
            String line;
            while ((line = br.readLine()) != null) {
                lines.add(Integer.parseInt(line));
            }
            br.close();
            Integer[] inputArray = lines.toArray(new Integer[lines.size()]);
            pb.mergeSort(inputArray, 0, inputArray.length - 1);
            System.out.println("Here is your list of numbers that you requested: ");
            for (Integer i : inputArray) {
                System.out.println(i);
            }
        } catch (IOException ie) {
            System.out.print(ie.getMessage());
        }

    }
...