-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path10-3_ArrayOf20Handling
More file actions
142 lines (105 loc) · 4.49 KB
/
Copy path10-3_ArrayOf20Handling
File metadata and controls
142 lines (105 loc) · 4.49 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*_а Дан массив из 20 целых чисел со значениями от 1 до 20. Необходимо:
1) написать функцию, разбрасывающую элементы массива произвольным образом;
2) создать случайное число из того же диапазона и найти позицию этого случайного числа в массиве;
3) отсортировать элементы массива, находящиеся слева от найденной позиции по убыванию, а элементы
массива, находящиеся справа от найденной позиции по возрастанию.
*/
package lesson10;
//import java.lang.reflect.Array;
import java.util.Random;
public class ArrayOf20Handling {
static Random random;
//_а Метод разбрасывает элементы массива
public static void flyElements (Integer[] array) {
System.out.println("Элементы разбросаны:");
for (int i=0; i<array.length; i++) { //_а Общий проход по массиву
int k = random.nextInt(20)+1; //_а Произвольное число
int x = array[i]; //_а х - поточный элемент массива
for (int j=i+1; j<array.length; j++) { //_а Проход справа от пройденых элементов
if (k==j) { //_а Сопоставляем случайное число с порядковым номером массива
//_а Меняем местами элементы i-тый с рендомным
x =array[j];
array[k] = array[i];
array[i] = x;
break; //_а дальше не нужно, ибо повтор k==j будет только 1 раз
}
}
System.out.print(x + " ");
}
}
public static void main(String[] args) {
random = new Random();
//_а Массив Integer (целые числа от 1 до 20)
//Integer[] array = {1, 17, 2, 13, 3, 4, 20, 18, 16, 5, 12, 6, 7, 11, 19, 8, 9, 10, 14, 15};
Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
//System.out.println(array.length); //_а Длина массива
//_а Показ массива
System.out.println("Входной массив:");
for (int i=0; i<array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
System.out.println();
//_а Разбрасываем элементы
flyElements(array);
System.out.println();
System.out.println();
//
//_а Случайное число из диапазона [1; 20]
int randomNumber = random.nextInt(20)+1;
System.out.println("Случайное число = " + randomNumber);
//_а Выделяем число в массиве для наглядности
for (int i=0; i<array.length; i++) {
if (array[i] == randomNumber) {
System.out.print("|" + array[i] + "| ");
} else System.out.print(array[i] + " ");
}
System.out.println();
//_а Позиция случайного числа в массиве
int randomIndex=0;
for (int i=0; i<array.length; i++) {
if (array[i] == randomNumber) {
randomIndex = i;
System.out.println("Порякдовый номер случайного числа = " + randomIndex);
break;
}
}
//
System.out.println();
//_а Сортировка левой и правой части от randomNumber
//_а Слева от randomNumber - по убыванию
for (int i=0; i<randomIndex; i++) {
int k = i;
int x = array[i];
for (int j=i+1; j<randomIndex; j++) {
if (array[j] > x) {
k = j;
x = array[j];
array[k] = array[i];
array[i] = x;
}
}
}
//_а Справа от randomNumber - по возрастанию
for (int i=randomIndex+1; i<array.length; i++) {
int k = i;
int x = array[i];
for (int j=i+1; j<array.length; j++) {
if (array[j] < x) {
k = j;
x = array[j];
array[k] = array[i];
array[i] = x;
}
}
}
//_а Вывод массива после сортировок
System.out.println("После сортировок:");
for(int i=0; i<array.length; i++){
if (array[i] == randomNumber) {
System.out.print("|" + array[i] + "| ");
}
else System.out.print(array[i]+" ");
}
}
}