Я работаю над простой программой, которая на данный момент записывает введенные имена и метки в два отдельных массива, при этом счетчики массивов синхронизируются. Например, имя в записи №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()
, а скорее с сортировкой пузырьков или обменов с использованием вложенных циклов?
Как синхронизировать сортировку, так что по мере того, как имена перетасовываются в первом массиве, соответствующие метки перетасовываются одинаково, сохраняя правильные данные?
Во-первых, я бы посоветовал не делать этого вообще. Я бы сделал класс с именем и меткой, сохранил это в массиве и отсортировал полученный массив.
Затем, если вы действительно хотите это сделать, например, при сортировке пузырьков, когда обычный код говорит об обмене элементами я и j в массиве, который вы сортируете, просто обменивайтесь элементами я и j в другом массиве. Это сделает работу.
Student
который объединил бы имена и метки в один объект, и отсортировал их вместе, но похоже, что это дляclass project
.