helpf.pro
Регистрация
 0 
Распечатать

Метод сортировки числового ряда шейкером

Вариант сортировки числового ряда (от малого к великому) методом шейкера. Считается более оптимизированным и быстрым алгоритмом сортировки по сравнению с сортировкой пузырьковым методом. Однако, есть тоже ряд отрицательных сторон (ну куда же без них). Подробно обо всём расскажет google, ну а ниже приведён код функции. Область применения так же достаточно широка.

Код 1C v 8.х
 
Функция  СортировкаШейкеромРядаЧисел(МассивЭлементов) Экспорт
	// Определяем границы массива
	НижняяГраница = 0;
	ВерхняяГраница = МассивЭлементов.Количество()-1;
	// Определяем счётчики циклов, они же - границы неотсортированной части массива
	счётчик1 = МассивЭлементов.Количество()-1;
	счётчик2 = 0;

	// Поехали сортировать массив
	Пока НижняяГраница < ВерхняяГраница Цикл
		// Проход снизу вверх
		Пока счётчик1 >= 0  Цикл
			счётчик1 = счётчик1-1;
			Если счётчик1 = 0 Тогда
				Прервать;
			КонецЕсли;
			Если МассивЭлементов[счётчик1-1] > МассивЭлементов[счётчик1] Тогда
				МладшийЭлемент = МассивЭлементов[счётчик1];
				СтаршийЭлемент = МассивЭлементов[счётчик1-1];
				
				МассивЭлементов[счётчик1-1] = МладшийЭлемент;
				МассивЭлементов[счётчик1] = СтаршийЭлемент;
				
				счётчик2 = счётчик1;
			КонецЕсли;
		КонецЦикла;
		
		НижняяГраница = счётчик2+1;
		
		// Проход сверху вниз
		счётчик1 = 0;
		Пока счётчик1 <= ВерхняяГраница Цикл
			счётчик1 = счётчик1+1;
			Если счётчик1 = МассивЭлементов.Количество() Тогда
				Прервать;
			КонецЕсли;
			Если МассивЭлементов[счётчик1-1] > МассивЭлементов[счётчик1] Тогда
				МладшийЭлемент = МассивЭлементов[счётчик1];
				СтаршийЭлемент = МассивЭлементов[счётчик1-1];
				
				МассивЭлементов[счётчик1-1] = МладшийЭлемент;
				МассивЭлементов[счётчик1] = СтаршийЭлемент;
				счётчик2 = счётчик1;
			КонецЕсли;
		КонецЦикла;
		
		ВерхняяГраница = счётчик2-1;
	КонецЦикла;
	
	Возврат МассивЭлементов;
КонецФункции

   
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 13026
 0 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 53
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C медленно работает по сети с базой на SQL Server 23
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!