Сортировка массива в 1С 8.3

Apr 03, 2022 16:02

Сортировка выбором

//Сортировка выбором
МассивЧисел = Новый Массив;
МассивЧисел.Добавить(2);
МассивЧисел.Добавить(4);
МассивЧисел.Добавить(1);
МассивЧисел.Добавить(5);
МассивЧисел.Добавить(3);

ВерхняяГраница = МассивЧисел.ВГраница();
Для i = 0 По ВерхняяГраница Цикл
Мин = i;
Для j = i + 1 По ВерхняяГраница Цикл
Если МассивЧисел[j] < МассивЧисел[Мин] Тогда
Мин = j;
КонецЕсли;
КонецЦикла;
Если Не МассивЧисел [Мин] = МассивЧисел [i] Тогда
Буфер = МассивЧисел[i];
МассивЧисел[i] = МассивЧисел[Мин];
МассивЧисел[Мин] = Буфер;
КонецЕсли;
КонецЦикла;


Сортировка пузырьком

//сортировка пузырьком
МассивЧисел = Новый Массив;
МассивЧисел.Добавить(2);
МассивЧисел.Добавить(4);
МассивЧисел.Добавить(1);
МассивЧисел.Добавить(5);
МассивЧисел.Добавить(3);

ВерхняяГраница = МассивЧисел.ВГраница();
Для i = 0 По ВерхняяГраница Цикл
Для j = 0 По ВерхняяГраница - i - 1 Цикл
Если МассивЧисел[j] > МассивЧисел[j + 1] Тогда
Буфер = МассивЧисел[j];
МассивЧисел[j] = МассивЧисел[j + 1];
МассивЧисел[j + 1] = Буфер;
КонецЕсли;
КонецЦикла;
КонецЦикла;

Быстрая сортировка

//быстрая сортировка
МассивЧисел = Новый Массив;
МассивЧисел.Добавить(2);
МассивЧисел.Добавить(4);
МассивЧисел.Добавить(1);
МассивЧисел.Добавить(5);
МассивЧисел.Добавить(3);
БыстраяСортировка(МассивЧисел);

Процедура БыстраяСортировка(МассивЧисел, Мин = Неопределено,
Макс = Неопределено)

Если Мин = Неопределено Тогда
Мин = 0;
КонецЕсли;

Если Макс = Неопределено Тогда
Макс = МассивЧисел.ВГраница();
КонецЕсли;

i = Мин;
j = Макс;
m = МассивЧисел[Цел(i + j) / 2];

Пока i <= j Цикл
Пока МассивЧисел[i] < m Цикл
i = i + 1;
КонецЦикла;
Пока МассивЧисел[j] > m Цикл
j = j - 1;
КонецЦикла;
Если i <= j Тогда
Если i <> j Тогда
Буфер = МассивЧисел[i];
МассивЧисел[i] = МассивЧисел[j];
МассивЧисел[j] = Буфер;
КонецЕсли;;
i = i + 1;
j = j - 1;
КонецЕсли;
КонецЦикла;

Если Мин < j Тогда
БыстраяСортировка(МассивЧисел, Мин, j);
КонецЕсли;

Если i < Макс Тогда
БыстраяСортировка(МассивЧисел, i, Макс);
КонецЕсли;

КонецПроцедуры

Сортировка через список значений

МассивЧисел = Новый Массив;
МассивЧисел.Добавить(2);
МассивЧисел.Добавить(4);
МассивЧисел.Добавить(1);
МассивЧисел.Добавить(5);
МассивЧисел.Добавить(3);

//сортировка через список значений
СписокСортировки = Новый СписокЗначений;
СписокСортировки.ЗагрузитьЗначения(МассивЧисел);
СписокСортировки.СортироватьПоЗначению();
МассивЧисел = СписокСортировки.ВыгрузитьЗначения();

Смотрите также:
Электронный учебник по по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Программное решение для сдачи и подготовки к экзаменам
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up