-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdz6.js
More file actions
46 lines (41 loc) · 1.48 KB
/
Copy pathdz6.js
File metadata and controls
46 lines (41 loc) · 1.48 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
var a = [1,2,3,4,5,6,7,8,9,10,11,12];
console.log('['+ a.toString()+']'); // вывод начального массива
if (!a || !(a instanceof Array)) throw "Not an array";
switch (a.length) {
case 0:
case 1:
case 2:
case 3:
alert('массив не преобразован');
case 4:
case 5:
{
var x = a[1];
a[1] = a[0];
a[0] = x;
x = a[a.length - 1];
a[a.length - 1] = a[a.length - 2];
a[a.length - 2] = x;
console.log(a);
};
break;
default:
(function swapArray (a) {
if(a.length < 3) return a;
var center = Math.floor(a.length / 2);
var quarter = Math.floor(center / 2);
var odd = (a.length % 2);
for (var i = 0; i < quarter; i++) {
// сортировка от 1 до центра
var n = center - a[i];
var x = a[i];
a[i] = a[n];
a[n] = x;
// сортировка от центра до последнего числа
var x = a[(a.length - 1) - i];
a[(a.length - 1) - i] = a[center + i + odd];
a[center + i + odd] = x;
}
console.log('['+ a.toString()+']'); // вывод что получилось
})(a);
};