Задание:
Упорядочить отдельно элементы массива, стоящие на чётных местах и отдельно стоящие на нечетных.
Выполнение:
В задании не сказано каким методом производить сортировку. Поэтому сортировка будет производиться пузырьковым методом. Этот метод хоть и самый медленный, но зато легко реализуемый. Поскольку сортировку необходимо произвести отдельно чётных и отдельно нечётных элементов массива, то для упрощение нужно вынести её в отдельный метод и передать в качестве параметра стартовый индекс (индекс, с которого необходимо начать сортировку) и шаг (в данном случае 2).
Необходимо также сгенерировать начальные данные, то есть заполнить массив. Можно, конечно, заставить пользователя каждый раз вводить данные. Но гораздо удобнее (особенно для пользователя) генерировать эти данные случайным образом. Для этого также проще сделать отдельный метод, чтобы не загромождать main. Генерация случайного числа происходит посредством Math.random().
Для вывода на экран также лучше написать отельную процедуру, в которой будет происходить обход массива и вывод его на экран.
Текст составленной программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
class lab1{ //Главная процедура public static void main(String args[]) { int MAX=10; float A[]=new float [MAX]; int n; frandomarray(A,MAX); fprintarray(A,MAX); fsortarray(A,MAX,0,2); fsortarray(A,MAX,1,2); fprintarray(A,MAX); } //Эта процедура выполняет сортировку public static void fsortarray(float A[],int max,int start, int step) { float buf; for (int n=start; n<max;n+=step) { for (int m=n; m<max;m+=step) { if (A[m]<A[n]) { buf=A[n]; A[n]=A[m]; A[m]=buf; } //fprintarray(A,max); } } } //Вывод массива на экран public static void fprintarray(float A[],int max) { System.out.println("A="); for (int n=0; n<max;n++) { System.out.print(" " +A[n]); } System.out.println(""); } //Заполнение массива случайными числами public static void frandomarray(float A[],int max) { for (int n=0; n<max;n++) { A[n]=(float)Math.random(); } } } |
Результат работы программы:
1 2 3 4 5 6 |
A= 0.49139336 0.55492866 0.59542304 0.3619536 0.79483 0.111836895 0.3938673 0.48938873 0.44665593 0.47976092 A= 0.3938673 0.111836895 0.44665593 0.3619536 0.49139336 0.47976092 0.59542 304 0.48938873 0.79483 0.55492866 |