![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Алгортим Быстрая сортировка. ⇐ ПредыдущаяСтр 7 из 7
Наиболее популярный и применяемый алгоритм на практике. Является одним из самых эффективных алгоритмов сортировки данных. //Алгоритм " Быстрая сортировка" { Процедура б_Сортировка(Массив, НижнийПредел, ВерхнийПредел)
i = НижнийПредел; j = ВерхнийПредел; m = Массив[Цел((i+j)/2)];
Пока Истина Цикл Пока Массив[i] < m Цикл i = i + 1; КонецЦикла;
Пока Массив[j] > m Цикл j = j - 1; КонецЦикла;
Если i > j Тогда Прервать; КонецЕсли;
КонецЦикла;
Если НижнийПредел < j Тогда б_Сортировка(Массив, НижнийПредел, j); КонецЕсли;
Если i < ВерхнийПредел Тогда б_Сортировка(Массив, i, ВерхнийПредел); КонецЕсли;
КонецПроцедуры
Функция БыстраяСортировка(Массив)
НижняяГраница = 0; ВерхняяГраница = Массив.ВГраница(); б_Сортировка(Массив, НижняяГраница, ВерхняяГраница);
Возврат Массив;
КонецФункции //---} Классическая сортировка массива в 1с. Передаем массив в список значений. Сортируем стандартным методом " Сортировать". //Сортировка списком значений {--- Функция СортировкаСпискомЗначений(Знач Массив)
мСписокЗнч = Новый СписокЗначений; мСписокЗнч.ЗагрузитьЗначения(Массив); мСписокЗнч.СортироватьПоЗначению(НаправлениеСортировки.Возр); Возврат мСписокЗнч.ВыгрузитьЗначения(); КонецФункции //---}
Все сортировки можно ускорить расположив код в циклах в 1 строку. Но для читабельности, оставил так.
Написал обработку в которой реализованы все вышеперечисленные алгоритмы, также поддерживается динамическая анимация процесса сортировки(Кроме стандартной сортировки 1с). -При запуске обработки автоматически происходит формирование массива случайных чисел от 0 до 100 размерностью 100 элементов.
|