Изменения

Перейти к: навигация, поиск

Получение следующего объекта

15 байт добавлено, 21:43, 26 ноября 2014
Специализация алгоритма для генерации следующего битового вектора
* Дописываем минимально возможный хвост из нулей
'''function''' nextVector(int[] a):int[] <font color=green>// <tex>n</tex> {{---}} длина вектора</font>
'''forwhile''' i = (n '''downto''' 1 '''if''' > 0) and (a[in] =!= 0) a[in] = 10 '''for''' j = i + 1 to n-- a[jn] = 0 '''break'''1
return a
Приведённый алгоритм эквивалентен прибавлению единицы к битовому вектору.
=== Пример работы ===
{| class="wikitable" border = 1
|0||1||0||1||style="background:#FFCC00"|0||1||1||исходный битовый вектор
|-
| || ||^|| || ^||находим элемент 0 (самый правый)начинаем идти с конца
|-
|0||1||0||style="background:#FFCC00"|10||style="background:#FFCC00"|10||пока элементы равны 1||меняем его , заменяем их на 10
|-
|0||1||1||style="background:#FFCC00"|1||0||style="background:#FFCC00"|0||меняем элементы правее первый не удовлетворяющий условию цикла элемент на нули1
|-
|'''0'''||'''1'''||'''1'''||'''0'''||'''0'''||следующий битовый вектор
Анонимный участник

Навигация