1 -1 2 8 6 0 -9 9 -5 4
N=10
Do
I2=n-i1-1;
I1 /= 2;
I1=n-1;
System.out.println();
VectorMin, vectorMax, n);
JOptionPane.showMessageDialog(null, text);
N=Integer.parseInt(input);
String input, text;
Int i1, i2, i3, m, per;
Int n, vectorMin, vectorMax, temp;
Package javaapplication6_1;
10 -7 -1 3 -6 7 7 -1 9 -2
N=10
System.out.println();
System.out.println();
VectorMin, vectorMax, n);
JOptionPane.showMessageDialog(null, text);
N=Integer.parseInt(input);
String input, text;
Int n, vectorMin, vectorMax, temp;
Package javaapplication6_1;
3 10 -1 -6
10 8 2 6
M=4
N=3
JOptionPane.showMessageDialog(null, text);
System.out.println();
MatrMin, matrMax, n, m);
JOptionPane.showMessageDialog(null, text);
M=Integer.parseInt(input);
N=Integer.parseInt(input);
String input, text;
Int n, m, matrMin, matrMax;
Package javaapplication1;
9 8 7 6 5 4 3 2 1 0
Примеры:
1. задать с помощью генератора случайных чисел элементы целочисленного массива matr34 , вывести его на экран и в диалоговое окно вывода построчно. Размеры массива ввести с помощью диалогового окна ввода:
// импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication1 // задание главного класса программы
{
// описание главного метода main этого класса
public static void main(String[] args)
{
// описание переменных:
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Нижняя граница диапазона matrMin:");
// преобразование из строкового значения в целое
matrMin=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Верхняя граница диапазона matrMax:");
matrMax=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Количество строк n:");
input=JOptionPane.showInputDialog("Количество столбцов m:");
// формирование строки вывода
text="Значения входных переменных:\nmatrMin=" + matrMin + "\nmatrMax=" + matrMax + "\nn=" + n + "\nm=" + m;
// вызов диалогового окна эхо-печати
// консольный вывод
System.out.printf("matrMin=%d\nmatrMax=%d\nn=%d\nm=%d\n ",
// создание матрицы n x m элементов
int matr[][]=new int[n][m];
// консольный вывод
System.out.println("Исходная матрица:");
/*
создание объекта Rand класса Random - генератора случ. чисел
инициализация генератора случайных чисел,
привязка его к системному времени
*/
Random Rand=new Random();
// заполнение матрицы случайными числами
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
// получение очередного случайного числа в диапазоне
// от matrMin до matrMax
matr[i][j]=Rand.nextInt(matrMax-matrMin+1) + matrMin;
// консольный вывод элементов матрицы построчно
System.out.printf(" %5d", matr[i][j]);
}
// переход на новую строку
}
// вывод элементов матрицы в диалоговое окно
text="Исходная матрица:\n";
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
text+=matr[i][j] + " ";
text+=”\n”; //переход на новую строку
}
// вызов диалогового окна
}
}
В окне вывода появится:
matrMin=-10
matrMax=10
Исходная матрица:
-3 -6 -8 7
2. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом обменной сортировки (пузырька) :
// импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication6_1 // задание главного класса
{
// описание главного метода main этого класса
public static void main(String[] args)
{
// описание переменных:
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Нижняя граница диапазона vectorMin:");
// преобразование из строкового значения в целое
vectorMin=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Верхняя граница диапазона vectoMax:");
vectorMax=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Размер вектора n:");
// формирование строки вывода
text="Значения входных переменных:\nvectorMin=" + vectorMin +
"\nvectorMax=" + vectorMax + "\nn=" + n;
// вызов диалогового окна эхо-печати
// консольный вывод
System.out.printf("vectorMin=%d\nvectorMax=%d\nn=%d\n",
// создание вектора длиной n элементов
int vector[]=new int[n];
// консольный вывод
System.out.println("Исходный вектор:");
/*
создание объекта Rand класса Random - генератора случ.чисел
инициализация генератора случайных чисел,
привязка его к системному времени
* /
Random Rand=new Random();
// создание вектора случайных чисел
for (int i=0; i<n; i++)
{
// получение очередного случайного числа в диапазоне
// от vectorMin до vectorMax
vector[i]=Rand.nextInt(vectorMax-vectorMin+1) + vectorMin;
// консольный вывод элемента вектора
System.out.printf(" %5d", vector[i]);
}
// сортировка вектора методом "пузырька"
for (int j=n-2; j>=0; j--)
for (int i=0; i<=j; i++)
if (vector[i] > vector[i+1])
{
temp=vector[i];
vector[i]=vector[i+1];
vector[i+1]=temp;
}
System.out.println("Отсортированный вектор:");
// консольный вывод вектора
for (int i=0; i<n; i++)
System.out.printf(" %5d", vector[i]);
}
}
В окне вывода появится:
vectorMin=-10
vectorMax=10
Исходный вектор:
Отсортированный вектор:
-7 -6 -2 -1 -1 3 7 7 9 10
3. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом Шелла (обменная сортировка с убывающим шагом). В этом случае массив делится на группы по два элемента и производится сортировка в каждой группе: максимальный элемент ставится на второе место. После этого массив делится на группы по четыре элемента, и они снова сортируются. Количество элементов в сортируемой группе удваивается до тех пор, пока не остается одна группа, включающая все элементы массива, которая и сортируется окончательно:
// импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication6_1 // задание главного класса
{
// описание главного метода main этого класса
public static void main(String[] args)
{
// описание переменных:
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Нижняя граница диапазона vectorMin:");
// преобразование из строкового значения в целое
vectorMin=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Верхняя граница диапазона vectoMax:");
vectorMax=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Размер вектора n:");
// формирование строки вывода
text="Значения входных переменных:\nvectorMin=" + vectorMin +
"\nvectorMax=" + vectorMax + "\nn=" + n;
// вызов диалогового окна эхо-печати
// консольный вывод
System.out.printf("vectorMin=%d\nvectorMax=%d\nn=%d\n",
// создание вектора длиной n элементов
int vector[]=new int[n];
// консольный вывод
System.out.println("Исходный вектор:");
/*
создание объекта Rand класса Random - генератора случ. чисел
инициализация генератора случайных чисел,
привязка его к системному времени
*/
Random Rand=new Random();
// формирование вектора
for (int i=0; i<n; i++)
{
// получение очередного случайного числа в диапазоне
// от vectorMin до vectorMax
vector[i]=Rand.nextInt(vectorMax-vectorMin+1) + vectorMin
// консольный вывод элемента вектора
System.out.printf(" %5d", vector[i]);
}
// сортировка вектора методом Шелла
while (i1>=1)
{
{
per=1;
for (int i=0; i<=i2; i++)
{
i3=i+i1;
if (vector[i] > vector[i3])
{
temp=vector[i];
vector[i]=vector[i3];
vector[i3]=temp;
per=0;
} // if (vector[i] > vector[i3])
} // for (i=0; i<=i2; i++)
}while (per==0); // do
} // while (i1>=1)
System.out.println("Отсортированный вектор:");
// консольный вывод вектора
for (int i=0; i<n; i++)
System.out.printf(" %5d", vector[i]);
System.out.println();
}
}
В окне вывода появится:
vectorMin=-10
vectorMax=10
Исходный вектор:
Отсортированный вектор:
-9 -5 -1 0 1 2 4 6 8 9
В классе Arrays из пакета java.util собрано много методов, облегчающих работу с массивами. Эти методы можно разделить на следующие группы:
1. заполнение всего массива nameMassiv[] или его части (from…to ) указанным значением value :
static void fill(type nameMassiv[], type value);
static void fill(type nameMassiv[], int from, int to, type value);
где type – один из восьми типов byte, short, int, long, char, float, double, Object.
Пример:
int myVector[]=new int[10];
System.out.println(“Исходный вектор:”);
Arrays.fill(myVector, 5);// вызов метода заполнения массива
for (int value: myVector)
System.out.printf(“%5d”, value);
В окне вывода появится:
Исходный вектор: