Алфавитная сортировка массива синхронно с другим массивом

1

Я работаю над простой программой, которая на данный момент записывает введенные имена и метки в два отдельных массива, при этом счетчики массивов синхронизируются. Например, имя в записи №3 в первом массиве соответствует отметкам в записи № 3 во втором массиве. Мой код до сих пор выглядит так:

import java.io.*;

public class project
{
    int ctr;
    int ctr1;
    int pos;
    int temp;
    int max;

    public static void main(String args[]) throws IOException
    {
        new project().input();
    }

    void input() throws IOException
    {
        BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
        System.out.println ("How many children?");
        int n = Integer.parseInt(obj.readLine());
        String a[] = new String[n];
        int b[] = new int[n];
        for(ctr=0;ctr<n;ctr++)
        {
            System.out.println("Enter name");
            a[ctr]=obj.readLine();
            System.out.println("Enter marks");
            b[ctr]=Integer.parseInt(obj.readLine());
        }
    }
}

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

Каков наилучший способ сортировки строкового массива в алфавитном порядке без использования каких-либо функций, таких как compareTo() или sort(), а скорее с сортировкой пузырьков или обменов с использованием вложенных циклов?

Как синхронизировать сортировку, так что по мере того, как имена перетасовываются в первом массиве, соответствующие метки перетасовываются одинаково, сохраняя правильные данные?

  • 0
    Привет, кроме образовательных целей или очень специфических областей (таких как биоинженерия), нет лучшего способа сортировки стандартных типов данных без встроенного метода sort (). Если это для образовательных целей, проверьте книги от Кнута en.wikipedia.org/wiki/The_Art_of_Computer_Programming . Если у вас есть конкретный домен, вы должны объяснить более подробно.
  • 1
    Чтобы синхронизировать их, просто выполните те же самые операции со вторым массивом, которые вы выполняете с первым массивом. Было бы лучше создать класс Student который объединил бы имена и метки в один объект, и отсортировал их вместе, но похоже, что это для class project .
Теги:
arrays
sorting

1 ответ

0

Во-первых, я бы посоветовал не делать этого вообще. Я бы сделал класс с именем и меткой, сохранил это в массиве и отсортировал полученный массив.

Затем, если вы действительно хотите это сделать, например, при сортировке пузырьков, когда обычный код говорит об обмене элементами я и j в массиве, который вы сортируете, просто обменивайтесь элементами я и j в другом массиве. Это сделает работу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню