Элементы массива, чтобы изменить положение игры

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

[] Выходная форма первой линии выхода: первый наименьший номер элемента является первым элементом второго по величине числа

                    Вторая строка вывода: массив после того, как датчик положения
[6] Пример ввода

                    4 5 6 1 2 3

[42] Пример вывода

                    5 4 6 1 2 3 

[Мышление] определяют два массива данных [] и data1 [], элементы которого такие же, начинают клавиатуры.

    Data1 для сортировки, а затем нажмите на вопросы попросили, чтобы найти второй по величине, то есть, data1 в предпоследний элемент данных, если он найден, будет первым элементом в данных просто найти это место.

    Заменить, что первоначальное значение, то предпоследний data1 элемента к первому элементу в данных о местоположении, то есть элементы данных заменить 0 бит.

    Эта реализация переключающих элементов в массиве (там может быть некоторые проблемы), что является предметом запроса.

    Аналогичным образом достичь минимального обмена с последней позиции на элементе.

    Существует запись позиции второго по величине значения с минимумом: записи, которые будут размещены в верхней части программы. Это начало цикла для двух

    Если программа в течение двух циклов в месте может быть неправильной.

    Наконец, в случае необходимости сумма выходной бит.

 

[Код:]

пакет text1;
импорт java.util.Arrays;
импорт java.util.Scanner;
общественный абстрактный класс двенадцать {
 открытой статический СБН Сканер = новый сканер (System.in);
 открытые статические Int N = sc.nextInt ();
 публичный статический ИНТ х;
 открытые статические INT г;
 государственной статической силы основных (String [] арг) {
  INT [] Данные = новый INT [п];
  INT [] data1 = новый INT [п];
  для (INT I = 0; I <п; я ++) {
   данные [I] = sc.nextInt ();
   data1 [I] = данные [I];
  }
  Arrays.sort (data1);
  для (INT I = 0; я <п; я ++) {
   если (данные [I] == data1 [п - 2]) {
    г = я;
   }
   Если (данные [I] == data1 [0]) {
    х = I;
   }
  }
// второй по величине значение обменного достигается:
  для (INT I = 0; я <п, я ++) {
   ЕСЛИ (Данные [I] == Datal [2 N- , ]) {
    данных [I] = Данные [0];
    Данные [0] = Datal [N- , 2];
    BREAK;
   }
  }
//实现最小值的交换:
  для (INT I = 0; I <data1.length; я ++) {
   если (данные [I] == data1 [0]) {
    данные [I] = данные [п - 1];
    Данные [п - 1] = data1 [0];
    сломать;
   }
  }
  System.out.print (х + 1 + " , «);
  System.out.println (г + 1);
  для (INT I = 0; я <п; I ++) {
   System.out.print (данные [I] + "«);
  }
 }
}
 Это моя после школы работа, ответ написать свои собственные. Если у вас есть лучший способ, на самом деле я хочу, чтобы сказать мне. Или есть области для улучшения для моего кода, пожалуйста, дайте мне знать.
Конечно, если линия не может читать приветствовала консультации, (я буду видеть каждый день), есть код, который я написал, чтобы объединить идею поиска и легче понять.

рекомендация

отwww.cnblogs.com/HeSC980513/p/11869999.html
рекомендация