- 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
- 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
Процедура СортировкаСписка(Список)
Перем лСредний;
лЛевый= СоздатьОбъект("СписокЗначений");
лПравый = СоздатьОбъект("СписокЗначений");
Если Список.РазмерСписка()>1 Тогда
лРазмерСписка = Список.РазмерСписка();
лПозицияСреднего = Цел(лРазмерСписка/2);
лСреднее = Список.ПолучитьЗначение(лПозицияСреднего);
Для й = 1 По лРазмерСписка Цикл
Если й<>лПозицияСреднего Тогда
лПроверяемоеЗначение = Список.ПолучитьЗначение(й);
Если лПроверяемоеЗначение<лСреднее Тогда
лЛевый.ДобавитьЗначение(лПроверяемоеЗначение);
ИначеЕсли лПроверяемоеЗначение>лСреднее Тогда
лПравый.ДобавитьЗначение(лПроверяемоеЗначение);
КонецЕсли;
КонецЕсли;
КонецЦикла;
СортировкаСписка(лЛевый);
СортировкаСписка(лПравый);
Список.УдалитьВсе();
Для й = 1 По лЛевый.РазмерСписка() Цикл
Список.ДобавитьЗначение(лЛевый.ПолучитьЗначение(й));
КонецЦикла;
Список.ДобавитьЗначение(лСреднее);
Для й = 1 По лПравый.РазмерСписка() Цикл
Список.ДобавитьЗначение(лПравый.ПолучитьЗначение(й));
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура Выполнить()
ОтсортированныйСписок = СоздатьОбъект("СписокЗначений");
СписокЗначений = СоздатьОбъект("СписокЗначений");
СписокЗначений.ДобавитьЗначение(2);
СписокЗначений.ДобавитьЗначение(7);
СписокЗначений.ДобавитьЗначение(15);
СписокЗначений.ДобавитьЗначение(16);
СписокЗначений.ДобавитьЗначение(20);
СписокЗначений.ДобавитьЗначение(21);
СписокЗначений.ДобавитьЗначение(3);
СписокЗначений.ДобавитьЗначение(5);
СписокЗначений.ДобавитьЗначение(4);
СписокЗначений.ДобавитьЗначение(14);
СписокЗначений.ДобавитьЗначение(12);
СписокЗначений.ДобавитьЗначение(13);
СписокЗначений.ДобавитьЗначение(11);
СписокЗначений.ДобавитьЗначение(19);
СписокЗначений.ДобавитьЗначение(1);
СписокЗначений.ДобавитьЗначение(8);
СписокЗначений.ДобавитьЗначение(6);
СписокЗначений.ДобавитьЗначение(17);
СписокЗначений.ДобавитьЗначение(9);
СписокЗначений.ДобавитьЗначение(10);
СписокЗначений.ДобавитьЗначение(18);
СортировкаСписка(СписокЗначений);
ВыбранноеЗначение = 0;
СписокЗначений.ВыбратьЗначение(ВыбранноеЗначение);
КонецПроцедуры