- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
var a1=1,a2=5,a3=3,a4=4,a5=2
var b1, b2, b3, b4, b5, c1, c2, c3, c4, c5
/* заполнить переменные a,b,c... */
if ( a1 < a2 ) {
a = a1; a1 = a2; a2 = a;
b = b1; b1 = b2; b2 = b;
c = c1; c1 = c2; c2 = c;
}
if ( a1 < a3 ) {
a = a1; a1 = a3; a3 = a;
b = b1; b1 = b3; b3 = b;
c = c1; c1 = c3; c3 = c;
}
if ( a2 < a3 ) {
a = a2; a2 = a3; a3 = a;
b = b2; b2 = b3; b3 = b;
c = c2; c2 = c3; c3 = c;
}
if ( a1 < a4 ) {
a = a1; a1 = a4; a4 = a;
b = b1; b1 = b4; b4 = b;
c = c1; c1 = c4; c4 = c;
}
if ( a2 < a4 ) {
a = a2; a2 = a4; a4 = a;
b = b2; b2 = b4; b4 = b;
c = c2; c2 = c4; c4 = c;
}
if ( a3 < a4 ) {
a = a3; a3 = a4; a4 = a;
b = b3; b3 = b4; b4 = b;
c = c3; c3 = c4; c4 = c;
}
if ( a1 < a5 ) {
a = a1; a1 = a5; a5 = a;
b = b1; b1 = b5; b5 = b;
c = c1; c1 = c5; c5 = c;
}
if ( a2 < a5 ) {
a = a2; a2 = a5; a5 = a;
b = b2; b2 = b5; b5 = b;
c = c2; c2 = c5; c5 = c;
}
if ( a3 < a5 ) {
a = a3; a3 = a5; a5 = a;
b = b3; b3 = b5; b5 = b;
c = c3; c3 = c5; c5 = c;
}
if ( a4 < a5 ) {
a = a4; a4 = a5; a5 = a;
b = b4; b4 = b5; b5 = b;
c = c4; c4 = c5; c5 = c;
}
/* теперь a,b,c упорядочены по убыванию a */
Сортировка 5 записей без массивов и структур в обратном порядке. Работает.
wvxvw 01.07.2016 19:37 # 0
Но присваиваний нужно меньше.
Т.е. это даже не оптимизация.
dxd 01.07.2016 19:57 # 0
bormand 01.07.2016 20:02 # 0
dxd 01.07.2016 21:51 # +1
cykablyad 01.07.2016 23:27 # 0
j123123 01.07.2016 19:39 # 0