Как я могу отсортировать мой массив с помощью (сдвиг вправо) - PullRequest
0 голосов
/ 17 сентября 2018

я должен прочитать из файла и добавить имя студента и идентификатор в массив объекта, после того как я добавил его я хочу сортировать индексы (информация по идентификатору) и это пример ввода

100 ДОБАВИТЬ 123 аа бб ДОБАВИТЬ 899 куб.см ДОБАВИТЬ 222 и далее ДОБАВИТЬ 565 ii чч ДОБАВИТЬ 777 КК ОО ВЫЙТИ

    int maxNumStudents = read.nextInt();
    Student[] arrayObStudent = new Student[maxNumStudents];
    while (read.hasNext()) {
        do {
            command = read.next();

            switch (command) {
                case "ADD":

                    arrayObStudent[Student.getNumStudents()] = new Student();
                    arrayObStudent[Student.getNumStudents()].setID(read.nextInt());
                    arrayObStudent[Student.getNumStudents()].setFname(read.next());
                    arrayObStudent[Student.getNumStudents()].setlName(read.next());

// это напечатает его без сортировки System.out.println (arrayObStudent [Student.getNumStudents ()]. ​​GetID () + "\ n"); System.out.println (arrayObStudent [Student.getNumStudents ()] getFname ().); System.out.println (arrayObStudent [Student.getNumStudents ()] getlName ().); Student.increseStudents (1); и т.д ..

1 Ответ

0 голосов
/ 17 сентября 2018

На каждой вставке вы можете проверить правильную позицию в массиве, чтобы вставить студента. Вот так массив останется отсортированным.

int insertStudent (int arrayObStudent[], int firstStudentId, int lastStudentId, Student target)
{
  int i = lastStudentId;  
  while ((i > firstStudentId) && (target.getID() < arrayObStudent[i-1]))
    {   
      arrayObStudent[i] = arrayObStudent[i-1];
      i = i - 1;
    }
  arrayObStudent[i] = target; 
  return i;
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...